Skip to content

Instantly share code, notes, and snippets.

@felhix
Last active October 19, 2023 07:27
Show Gist options
  • Save felhix/ed862c5f504ff4c8e934da679f812224 to your computer and use it in GitHub Desktop.
Save felhix/ed862c5f504ff4c8e934da679f812224 to your computer and use it in GitHub Desktop.
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
@yann120
Copy link

yann120 commented Jan 29, 2020

`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
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
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`

There are 2 end missing, I just change it but I can't do a PR on Gist

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment