Outils pour utilisateurs

Outils du site


nsi:jeu:morpion

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:morpion [2021/04/25 14:11] – [Avec classes] goupillwikinsi:jeu:morpion [2022/04/10 23:58] (Version actuelle) goupillwiki
Ligne 14: Ligne 14:
 Ci-dessous, une partie gagnante pour **O**. Ci-dessous, une partie gagnante pour **O**.
  
-{{ :nsi:terminales:minmax_3.svg |}}+{{ :nsi:tds:jeux:minmax_3.svg |}}
  
 ===== Exemple d'implémentation Python ===== ===== Exemple d'implémentation Python =====
 +
 +**Attention :** L'implémentation proposée définit les règles de fonctionnement d'une partie. Elle ne définit pas l'interface d'une partie. C'est à dire que pour jouer une partie, il faudrait intégrer le module dans une programme qui se chargerait d'initialiser la partie, de commander son affichage à chaque coup, de demander aux joueurs ce qu'ils veulent faire pour leur prochain coup...
  
 ==== Avec classes ==== ==== Avec classes ====
  
-<file python morpion.py>+<code python >
 ''' '''
 module morpion module morpion
Ligne 50: Ligne 52:
         assert 0 <= indice_line < self.N         assert 0 <= indice_line < self.N
         assert 0 <= indice_column < self.N         assert 0 <= indice_column < self.N
-        return self.__grid[indice_line*N + indice_column]+        return self.__grid[indice_line*self.N + indice_column]
          
-    def set(self, value, indice_line, indice_column):+    def current_player_set(self, indice_line, indice_column):
         '''         '''
-        écrit value aux indices fournis en argument+        écrit le symbole pour joueur en cours à la position indiquée, change de joueur
         '''         '''
-        assert 0 <= indice_line < self.+        assert self.cell_is_empty(indice_line, indice_column), "La case n'est pas vide" 
-        assert 0 <= indice_column < self.N +        self.__grid[indice_line*self.N + indice_column] = self.get_current_player_symbol() 
-        self.__grid[indice_line*N + indice_column] = value+        self.change_player()
          
     def cell_is_empty(self, indice_line, indice_column):     def cell_is_empty(self, indice_line, indice_column):
Ligne 66: Ligne 68:
         return self.get(indice_line, indice_column) == self.EMPTY         return self.get(indice_line, indice_column) == self.EMPTY
  
-    def get_player(self):+    def get_current_player_symbol(self): 
 +        if self.__current_player_is_1: 
 +            return self.P_1 
 +        return self.P_2         
 + 
 +    def current_player_is_1(self):
         '''         '''
-        renvoie l'étiquette du joueur en cours+        indique si le joueur en cours est P1
         '''         '''
-        return self.__current_player+        return self.__current_player_is_1
          
     def change_player(self):     def change_player(self):
Ligne 94: Ligne 101:
         return self.EMPTY not in self.__grid         return self.EMPTY not in self.__grid
          
-    def is_winner(self, first_player):+    def game_over(self): 
 +        ''' 
 +        renvoie True si la partie est terminée (victoire ou nul) 
 +        ''' 
 +        return self.is_full() or self.winner() != None 
 + 
 +    def winner(self):
         '''         '''
-        first_player : joueur pour lequel on interroge une victoire, True pour P1, False pour P2 +        renvoie le symbole du gagnant s'il y en a un, None sinon
-        renvoie True si le joueur demandé est gagnant+
         '''         '''
         # je vous laisse le soin d'y réfléchir         # je vous laisse le soin d'y réfléchir
Ligne 114: Ligne 126:
         return out         return out
          
-    def get availables_cells(self):+    def get_availables_cells(self):
         '''         '''
         renvoie un tableau contenant les paires (incice ligne, indice colonne) des cases vides         renvoie un tableau contenant les paires (incice ligne, indice colonne) des cases vides
         '''         '''
         # je vous laisse le soin d'y réfléchir         # je vous laisse le soin d'y réfléchir
-</file>+</code>
  
  
nsi/jeu/morpion.1619352670.txt.gz · Dernière modification : de goupillwiki