nsi:jeu:morpion
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| nsi:jeu:morpion [2021/04/25 14:11] – [Avec classes] goupillwiki | nsi: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: | + | {{ :nsi:tds:jeux: |
| ===== Exemple d' | ===== Exemple d' | ||
| + | |||
| + | **Attention :** L' | ||
| ==== Avec classes ==== | ==== Avec classes ==== | ||
| - | <file python | + | <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, | + | def current_player_set(self, indice_line, |
| ''' | ''' | ||
| - | écrit | + | écrit |
| ''' | ''' | ||
| - | assert | + | assert self.cell_is_empty(indice_line, |
| - | assert 0 <= indice_column | + | 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, | def cell_is_empty(self, | ||
| Ligne 66: | Ligne 68: | ||
| return self.get(indice_line, | return self.get(indice_line, | ||
| - | 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): | ||
| ''' | ''' | ||
| - | | + | |
| ''' | ''' | ||
| - | 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): | ||
| ''' | ''' | ||
| - | | + | renvoie le symbole du 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
