forked from a1iya/morpion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.rb
134 lines (117 loc) · 3.13 KB
/
app.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
require 'bundler'
Bundler.require
$:.unshift File.expand_path('./../lib', __FILE__)
require 'app/application'
require 'app/game'
require 'app/board'
Application.new.perform
# 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
#
# stairway = Array.new(10) { Array.new(10) { "."}}
#
# def display_stairway(number_of_lines, max_col, stairway)
# for tmp_lines in 0..number_of_lines-1 do
# print_line = ""
# for tmp_char in 0..max_col-1 do
# print_line += stairway[tmp_lines][tmp_char]
# end
# puts print_line
# end
# end
#
# display_stairway(3,5,stairway)
#
#
# puts "//"*20
#
# stairway[2][2] = "X"
#
#
# display_stairway(3,5,stairway)
#
#
# puts "//"*20
#
#
# stairway[1][0] = "O"
#
#
# display_stairway(3,5,stairway)
# #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