-
-
Save KimGemRuby/531697453d8e59b19a3b35148a936970 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class BoardCase | |
#TO DO : la classe a 2 attr_accessor, sa valeur en string (X, O, ou vide), ainsi que son identifiant de case | |
def initialize | |
#TO DO : doit régler sa valeur, ainsi que son numéro de case | |
end | |
end | |
class Board | |
#TO DO : la classe a 1 attr_accessor : un array/hash qui contient les BoardCases. | |
#Optionnellement on peut aussi lui rajouter un autre sous le nom @count_turn pour compter le nombre de coups joué | |
def initialize | |
#TO DO : | |
#Quand la classe s'initialize, elle doit créer 9 instances BoardCases | |
#Ces instances sont rangées dans un array/hash qui est l'attr_accessor de la classe | |
end | |
def play_turn | |
#TO DO : une méthode qui : | |
#1) demande au bon joueur ce qu'il souhaite faire | |
#2) change la BoardCase jouée en fonction de la valeur du joueur (X ou O) | |
end | |
def victory? | |
#TO DO : une méthode qui vérifie le plateau et indique s'il y a un vainqueur ou match nul | |
end | |
class Player | |
#TO DO : la classe a 2 attr_reader, son nom et sa valeur (X ou O). | |
def initialize | |
#TO DO : doit régler son nom et sa valeur | |
end | |
class Game | |
#TO DO : la classe a plusieurs attr_accessor: le current_player (égal à un objet Player), le status (en cours, nul ou un objet Player s'il gagne), le Board et un array contenant les 2 joueurs. | |
def initialize | |
#TO DO : créé 2 joueurs, créé un board, met le status à "on going", défini un current_player | |
end | |
def turn | |
#TO DO : méthode faisant appelle aux méthodes des autres classes (notamment à l'instance de Board). Elle affiche le plateau, demande au joueur ce qu'il joue, vérifie si un joueur a gagné, passe au joueur suivant si la partie n'est pas finie. | |
end | |
def new_round | |
# TO DO : relance une partie en initialisant un nouveau board mais en gardant les mêmes joueurs. | |
end | |
def game_end | |
# TO DO : permet l'affichage de fin de partie quand un vainqueur est détecté ou si il y a match nul | |
end | |
end | |
class Show | |
def show_board(board) | |
#TO DO : affiche sur le terminal l'objet de classe Board en entrée. S'active avec un Show.new.show_board(instance_de_Board) | |
end | |
end | |
class Application | |
def perform | |
# TO DO : méthode qui initialise le jeu puis contient des boucles while pour faire tourner le jeu tant que la partie n'est pas terminée. | |
# | |
end | |
end | |
Application.new.perform |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment