Alignements

Écrire une fonction alignement permettant de détecter des alignements dans une grille.

La signature et la documentation de la fonction sont données ci-dessous :

def alignement(grille, taille):
    """ Recherche un alignement d'éléments dans une grille (le 1er trouvé)
         alignements verticaux, horizontaux et diagonaux
        
        grille: tableau à 2 dimensions (liste de listes) contenant des caractères (ou des chiffres)
        taille: entier définissant la taille (longueur) des alignements à rechercher

        Renvoie le résultat sous la forme d'une liste des tuples (ligne, colonne) formant l'alignement détecté
    """
Petit conseil
Procéder par étapes !

par exemple, commencer par ne rechercher que des alignements horizontaux, puis verticaux, …

 

Par exemple :

grille = [['o','x',' ','o'],
          ['o','o','x','o'],
          ['x','x',' ','x'],
          ['o','x',' ',' '],
          [' ','x','o','o']]
print(alignement(grille, 3))

doit afficher ceci :

[(0,1),(1,2),(2,3)]

 

Aide

 

 

 

Écrire une fonctions alignements qui renvoie tous les alignements de la grille. Le résultat doit être renvoyé dans un dictionnaire de la forme {élément de la grille : listes d'alignements, ...}, avec alignement de la même forme que précédemment (liste de tuples).

Par exemple :

grille = [['o','x','o','o'],
          ['x','o','x','o'],
          ['o','x',' ','x'],
          ['o','x',' ',' '],
          [' ','x','o','o']]
print(alignements(grille, 3))

doit afficher ceci :

{'x' : [[(0,1),(1,2),(2,3)], [(2,1),(3,1),(4,1)]],
 'o' : [[(2,0),(1,1),(0,2)]] }

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *