Outils pour utilisateurs

Outils du site


nsi:jeu:puissance4

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
nsi:jeu:puissance4 [2022/12/08 22:25] goupillwikinsi:jeu:puissance4 [2022/12/09 12:14] (Version actuelle) goupillwiki
Ligne 73: Ligne 73:
  
 //Bien que j'ai noté ce tableau sur plusieurs lignes, il s'agit bien d'un tableau à une dimension puisqu'il n'y a qu'une paire de crochets.// //Bien que j'ai noté ce tableau sur plusieurs lignes, il s'agit bien d'un tableau à une dimension puisqu'il n'y a qu'une paire de crochets.//
 +
 +<code python>
 +# c'est exactement le même tableau du point de vue de Python :
 +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 2, 0, 0, 0, 1, 2, 2, 1, 0, 0, 2, 1, 1, 1, 2, 2, 0]
 +</code>
  
 === Créer une grille vide === === Créer une grille vide ===
Ligne 109: Ligne 114:
 # SYMBOLS[0] correspond à une case vide. # SYMBOLS[0] correspond à une case vide.
  
-def display(grid:list):+def grid_to_str(grid:list) -> str:
     """     """
     grid: tableau de LIGNES * COLS éléments     grid: tableau de LIGNES * COLS éléments
-    affiche la grille en mode texte dans la console.+    renvoie une version texte de la grille.
     """     """
     # création d'une grille avec les symboles au lieu des numéros     # création d'une grille avec les symboles au lieu des numéros
Ligne 180: Ligne 185:
  
 <code lang-none> <code lang-none>
-FONCTION alignement+FONCTION get_line
 ENTRÉES ENTRÉES
     grille     grille
     pas: déplacement à faire d'un case à l'autre     pas: déplacement à faire d'un case à l'autre
     depart: position de départ     depart: position de départ
-SORTIE: un tableau contenant les valeurs de l'alignement+SORTIE: une chaîne de caractères line valeurs de l'alignement
 DÉBUT DÉBUT
     soit position en cours définie par la position de depart     soit position en cours définie par la position de depart
-    soit alig un tableau vide+    soit line une chaine vide
     TANT QUE position en cours à l'intérieur de la grille RÉPÉTER     TANT QUE position en cours à l'intérieur de la grille RÉPÉTER
         lire le contenu de la grille en position,         lire le contenu de la grille en position,
-        ajouter ce qui a été lu au bout de alig+        ajouter ce qui a été lu au bout de line
         modifier position selon le pas         modifier position selon le pas
     FIN     FIN
 +    RENVOYER line
 FIN FIN
 </code> </code>
Ligne 206: Ligne 212:
 1121211 1121211
 </code> </code>
-Si on se donne ''depart= (0,0)'', cela désigne le coin supérieur gauche. ''pas = (1,1)'' fait se déplacer en diagonale ↘. L'appel ''alignement(grille, pas, depart)'' doit renvoyer ''[0, 0, 1, 2, 1, 1]''.+Si on se donne ''depart= (0,0)'', cela désigne le coin supérieur gauche. ''pas = (1,1)'' fait se déplacer en diagonale ↘. L'appel ''get_line(grille, pas, depart)'' doit renvoyer ''%%"001211"%%''.
  
 Exemple d'utilisation : Exemple d'utilisation :
-  * ''%%alignement(grid, (1,1), (0,0))%%'' renvoie la diagonale ↘ partant du coin supérieur droit, +  * ''%%get_line(grid, (1,1), (0,0))%%'' renvoie la diagonale ↘ partant du coin supérieur droit, 
-  * ''%%alignement(grid, (1,1), (0,1))%%'' renvoie la diagonale ↘ partant de la deuxième case de la première ligne, +  * ''%%get_line(grid, (1,1), (0,1))%%'' renvoie la diagonale ↘ partant de la deuxième case de la première ligne, 
-  * ''%%alignement(grid, (-1,1), (0,3))%%'' renvoie la diagonale ↙ partant de la quatrième case de la première ligne, +  * ''%%get_line(grid, (-1,1), (0,3))%%'' renvoie la diagonale ↙ partant de la quatrième case de la première ligne, 
-  * ''%%alignement(grid, (0,1), (0,3))%%'' renvoie la colonne partant de la quatrième case de la première ligne, +  * ''%%get_line(grid, (0,1), (0,3))%%'' renvoie la colonne partant de la quatrième case de la première ligne, 
-  * ''%%alignement(grid, (1,0), (2,0))%%'' renvoie la troisième ligne.+  * ''%%get_line(grid, (1,0), (2,0))%%'' renvoie la troisième ligne.
  
 On ajoute une deuxième fonction pour compter le nombre max de répétitions d'un symbole : On ajoute une deuxième fonction pour compter le nombre max de répétitions d'un symbole :
  
 <code python> <code python>
-def plus_long(alig:list, valeur:int) -> int:+def line_has_victory(line:str, valeur:int) -> bool:
     '''     '''
-    aligtableau représentant un alignement. ex : [0, 1, 2, 1, 1, 1]+    linechaîne représentant un alignement. ex : "012111"
     valeur: valeur recherchée. ex : 1     valeur: valeur recherchée. ex : 1
-    renvoie la longueur du meilleur alignementex : 3+    renvoie True si line contient un alignement assez long 
 +      ex: ici non, il n'y a que fois le 1 à la suite
     '''     '''
 </code> </code>
Ligne 271: Ligne 278:
 # SYMBOLS[0] correspond à une case vide. # SYMBOLS[0] correspond à une case vide.
  
-def display(grid:list):+def grid_to_str(grid:list) -> str:
     """     """
     grid: tableau de LIGNES * COLS éléments     grid: tableau de LIGNES * COLS éléments
-    affiche la grille en mode texte dans la console.+    renvoie une version texte de la grille.
     """     """
     # création d'une grille avec les symboles au lieu des numéros     # création d'une grille avec les symboles au lieu des numéros
Ligne 306: Ligne 313:
     # À vous !     # À vous !
  
-def alignement(grid:list, step:tuple, start:tuple) -> bool:+def get_line(grid:list, step:tuple, start:tuple) -> str:
     """     """
     grid: grille de jeu     grid: grille de jeu
     step: paire (step_lig,step_col) indiquant le déplacement d'une case à la suivante     step: paire (step_lig,step_col) indiquant le déplacement d'une case à la suivante
     start: paire (start_lig, start_col) indiquant la position de départ     start: paire (start_lig, start_col) indiquant la position de départ
-    renvoie un tableau correspondant à l'alignement demandé+    renvoie une chaîne correspondant à l'alignement demandé
     """     """
     # À vous !     # À vous !
  
-def plus_long(line:listvalue:int) -> int+def line_has_victory(line:strvaleur:int) -> bool
-    """ +    ''' 
-    line: tableau représentant un alignement +    line: chaîne représentant un alignement. ex : "012111" 
-    value: valeur que l'on souhaite compter +    valeur: valeur recherchée. ex : 1 
-    renvoie la longueur de la plus longue répétition de value dans line +    renvoie True si line contient un alignement assez long 
-    exempleplus_long([0,1,2,1,1,1], 1) renvoie 3 +      exici nonil n'y a que 3 fois le à la suite 
-    """+    '''
  
 def grid_has_victory(grid:list) -> bool: def grid_has_victory(grid:list) -> bool:
Ligne 343: Ligne 350:
 Ensuite le jeu suit l'algorithme suivant : Ensuite le jeu suit l'algorithme suivant :
  
-<code lang:none linenums>+<code lang-none>
 DÉBUT DÉBUT
     créer une grille vide     créer une grille vide
Ligne 359: Ligne 366:
             partie_finie passe à vrai             partie_finie passe à vrai
             afficher un message indiquant le match nul             afficher un message indiquant le match nul
 +        SINON
 +            changer de joueur
         FIN         FIN
     FIN     FIN
nsi/jeu/puissance4.1670534706.txt.gz · Dernière modification : de goupillwiki