Dogeku 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +39 -0
- data/app/Historique/Action.rb +29 -0
- data/app/Historique/ChangerCase.rb +44 -0
- data/app/Historique/HistoriqueAction.rb +114 -0
- data/app/components/CaseDessin.rb +325 -0
- data/app/components/GrilleDessin.rb +235 -0
- data/app/components/Header.rb +194 -0
- data/app/config/app.yml +0 -0
- data/app/config/database.yml +2 -0
- data/app/controller/ApprentissageControleur.rb +75 -0
- data/app/controller/ChargerControleur.rb +41 -0
- data/app/controller/JeuLibreControleur.rb +244 -0
- data/app/controller/MenuControleur.rb +57 -0
- data/app/controller/NiveauControleur.rb +54 -0
- data/app/controller/NouvellePartieControleur.rb +34 -0
- data/app/controller/PrincipaleControleur.rb +30 -0
- data/app/controller/PseudoControleur.rb +95 -0
- data/app/controller/ReglagesControleur.rb +86 -0
- data/app/controller/ReglesControleur.rb +34 -0
- data/app/controller/ScoresControleur.rb +42 -0
- data/app/controller/StatistiquesControleur.rb +64 -0
- data/app/core/Conf.rb +26 -0
- data/app/core/Controller.rb +180 -0
- data/app/core/Core.rb +186 -0
- data/app/core/Model.rb +159 -0
- data/app/core/View.rb +56 -0
- data/app/db/main.sqlite3 +0 -0
- data/app/model/Configuration.rb +180 -0
- data/app/model/Grille.rb +180 -0
- data/app/model/Jeu.rb +74 -0
- data/app/model/Score.rb +100 -0
- data/app/model/Utilisateur.rb +113 -0
- data/app/utils/DSubset.rb +98 -0
- data/app/utils/Generateur.rb +171 -0
- data/app/utils/HPTriple.rb +75 -0
- data/app/utils/Peche.rb +46 -0
- data/app/utils/SCandidate.rb +86 -0
- data/app/utils/SCell.rb +73 -0
- data/app/utils/Technique.rb +202 -0
- data/app/utils/TechniqueUsine.rb +25 -0
- data/app/utils/XWing.rb +203 -0
- data/app/view/Fenetre.rb +424 -0
- data/app/view/FenetreApprentissage.rb +272 -0
- data/app/view/FenetreCharger.rb +31 -0
- data/app/view/FenetreJeuLibre.rb +468 -0
- data/app/view/FenetreMenu.rb +198 -0
- data/app/view/FenetreNiveau.rb +105 -0
- data/app/view/FenetreNouvellePartie.rb +92 -0
- data/app/view/FenetrePrincipale.rb +45 -0
- data/app/view/FenetrePseudo.rb +115 -0
- data/app/view/FenetreReglages.rb +209 -0
- data/app/view/FenetreRegles.rb +111 -0
- data/app/view/FenetreScores.rb +120 -0
- data/app/view/FenetreStatistiques.rb +134 -0
- data/assets/css/style.css +69 -0
- data/assets/img/eraser.png +0 -0
- data/assets/img/fond.jpg +0 -0
- data/assets/img/iconApp.png +0 -0
- data/assets/img/logoS.jpeg +0 -0
- data/assets/img/sudokuIntro.jpg +0 -0
- data/assets/img/user.png +0 -0
- data/bin/dogeku +19 -0
- data/doc/Action.html +309 -0
- data/doc/ApprentissageControleur.html +568 -0
- data/doc/CaseDessin.html +2405 -0
- data/doc/ChangerCase.html +405 -0
- data/doc/ChargerControleur.html +342 -0
- data/doc/Conf.html +378 -0
- data/doc/Configuration.html +1115 -0
- data/doc/Controller.html +1008 -0
- data/doc/Core.html +1191 -0
- data/doc/DSubset.html +647 -0
- data/doc/Fenetre.html +2631 -0
- data/doc/FenetreApprentissage.html +1175 -0
- data/doc/FenetreCharger.html +343 -0
- data/doc/FenetreJeuLibre.html +1859 -0
- data/doc/FenetreMenu.html +900 -0
- data/doc/FenetreNiveau.html +626 -0
- data/doc/FenetreNouvellePartie.html +602 -0
- data/doc/FenetrePrincipale.html +371 -0
- data/doc/FenetrePseudo.html +695 -0
- data/doc/FenetreReglages.html +946 -0
- data/doc/FenetreRegles.html +636 -0
- data/doc/FenetreScores.html +650 -0
- data/doc/FenetreStatistiques.html +672 -0
- data/doc/Generateur.html +1015 -0
- data/doc/Grille.html +1348 -0
- data/doc/GrilleDessin.html +1281 -0
- data/doc/HPTriple.html +593 -0
- data/doc/Header.html +1253 -0
- data/doc/HistoriqueAction.html +792 -0
- data/doc/Jeu.html +923 -0
- data/doc/JeuLibreControleur.html +1445 -0
- data/doc/MenuControleur.html +522 -0
- data/doc/Model.html +996 -0
- data/doc/NiveauControleur.html +451 -0
- data/doc/NouvellePartieControleur.html +330 -0
- data/doc/Peche.html +396 -0
- data/doc/PrincipaleControleur.html +320 -0
- data/doc/PseudoControleur.html +695 -0
- data/doc/ReglagesControleur.html +747 -0
- data/doc/ReglesControleur.html +330 -0
- data/doc/SCandidate.html +617 -0
- data/doc/SCell.html +587 -0
- data/doc/Score.html +926 -0
- data/doc/ScoresControleur.html +346 -0
- data/doc/StatistiquesControleur.html +390 -0
- data/doc/Technique.html +543 -0
- data/doc/TechniqueUsine.html +252 -0
- data/doc/Utilisateur.html +806 -0
- data/doc/View.html +844 -0
- data/doc/XWing.html +1031 -0
- data/doc/_index.html +478 -0
- data/doc/class_list.html +51 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +58 -0
- data/doc/css/style.css +492 -0
- data/doc/file.README.html +141 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +17 -0
- data/doc/index.html +141 -0
- data/doc/js/app.js +243 -0
- data/doc/js/full_list.js +216 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +2523 -0
- data/doc/top-level-namespace.html +112 -0
- data/test/Generateur/grilleCorrecte.rb +198 -0
- data/test/Model/scoreCorrecte.rb +55 -0
- data/test/Model/utilisateurCorrecte.rb +68 -0
- data/test/test_helper.rb +2 -0
- data/test/unitTest.rb +72 -0
- metadata +187 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# =>
|
|
2
|
+
# => Author:: Valentin, DanAurea
|
|
3
|
+
# => Version:: 0.1
|
|
4
|
+
# => Copyright:: © 2016
|
|
5
|
+
# => License:: Distributes under the same terms as Ruby
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
##
|
|
9
|
+
## Classe permettant de créer un controlleur pour la vue FenetreCharger
|
|
10
|
+
##
|
|
11
|
+
class ChargerControleur < Controller
|
|
12
|
+
|
|
13
|
+
##
|
|
14
|
+
## Initialize
|
|
15
|
+
##
|
|
16
|
+
def initialize()
|
|
17
|
+
#charge le modèle grille
|
|
18
|
+
loadModel("Grille")
|
|
19
|
+
#paramètres fenêtre
|
|
20
|
+
@title = "Sudoku - Partie chargée"
|
|
21
|
+
@content = {"grille" => nil}
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
##
|
|
25
|
+
## Méthode à définir dans tous les cas !
|
|
26
|
+
##
|
|
27
|
+
## @return self
|
|
28
|
+
##
|
|
29
|
+
def run()
|
|
30
|
+
|
|
31
|
+
if(@content.has_key?(:niveau))
|
|
32
|
+
niveau = @content[:niveau]
|
|
33
|
+
else
|
|
34
|
+
niveau = 1
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
@content["grille"] = @Grille.generer(niveau)
|
|
38
|
+
|
|
39
|
+
return self
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
require Core::ROOT + "utils/TechniqueUsine.rb"
|
|
2
|
+
|
|
3
|
+
# => Author:: Valentin, DanAurea
|
|
4
|
+
# => Version:: 0.1
|
|
5
|
+
# => Copyright:: © 2016
|
|
6
|
+
# => License:: Distributes under the same terms as Ruby
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
##
|
|
11
|
+
## Classe permettant de créer un contrôleur pour la vue FenetreJeuLibre
|
|
12
|
+
##
|
|
13
|
+
class JeuLibreControleur < Controller
|
|
14
|
+
|
|
15
|
+
##
|
|
16
|
+
## Initialize
|
|
17
|
+
##
|
|
18
|
+
def initialize()
|
|
19
|
+
#charge le modèle grille
|
|
20
|
+
loadModel("Configuration")
|
|
21
|
+
loadModel("Grille")
|
|
22
|
+
loadModel("Score")
|
|
23
|
+
loadModel("Jeu")
|
|
24
|
+
loadModel("Utilisateur")
|
|
25
|
+
|
|
26
|
+
#paramètres fenêtre
|
|
27
|
+
@title = "Sudoku - Jeu Libre"
|
|
28
|
+
@content = {"grille" => nil}
|
|
29
|
+
@height = 720
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Met à jour la grille de données
|
|
35
|
+
##
|
|
36
|
+
## @param x Position x de la case
|
|
37
|
+
## @param y Position y de la case
|
|
38
|
+
## @param value La valeur
|
|
39
|
+
##
|
|
40
|
+
## @return self
|
|
41
|
+
##
|
|
42
|
+
def updateGrille(x, y, value)
|
|
43
|
+
|
|
44
|
+
## Met à jour le compteur
|
|
45
|
+
if(@content["grille"][x][y]["value"] == nil && value != nil)
|
|
46
|
+
@Grille.nbVides -= 1
|
|
47
|
+
elsif(@content["grille"][x][y]["value"] != nil && value == nil)
|
|
48
|
+
@Grille.nbVides += 1
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
@content["grille"][x][y]["value"] = value
|
|
52
|
+
|
|
53
|
+
return self
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
##
|
|
57
|
+
## Vérifie que la grille est correcte
|
|
58
|
+
##
|
|
59
|
+
## @return True si correcte sinon false
|
|
60
|
+
##
|
|
61
|
+
def grilleCorrecte()
|
|
62
|
+
|
|
63
|
+
@content["grille"].each_with_index do | ligne, ligneIndex |
|
|
64
|
+
ligne.each_with_index do | colonne, colonneIndex |
|
|
65
|
+
if(!@Grille.valeurUnique(colonne["value"], ligneIndex, colonneIndex))
|
|
66
|
+
return false
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
return true
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
##
|
|
75
|
+
## Vérifie si la partie est terminée c'est à dire
|
|
76
|
+
## grille complète et correcte.
|
|
77
|
+
##
|
|
78
|
+
## @return
|
|
79
|
+
##
|
|
80
|
+
def finPartie?()
|
|
81
|
+
return self.getNbVides == 0 && self.grilleCorrecte()
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
##
|
|
85
|
+
## Récupère le nombre de cases encore vides
|
|
86
|
+
##
|
|
87
|
+
## @return Nombre de cases vides
|
|
88
|
+
##
|
|
89
|
+
def getNbVides()
|
|
90
|
+
return @Grille.nbVides
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
##
|
|
94
|
+
## Récupère seulement les valeurs de la grille
|
|
95
|
+
##
|
|
96
|
+
## @return La grille que sous forme de valeur
|
|
97
|
+
##
|
|
98
|
+
def valeursGrille()
|
|
99
|
+
grille = Array.new()
|
|
100
|
+
|
|
101
|
+
@content["grille"].each_with_index do |ligne, index|
|
|
102
|
+
grille << Array.new()
|
|
103
|
+
ligne.each do |c|
|
|
104
|
+
grille[index] << c["value"]
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
##
|
|
111
|
+
## Action lorsque la partie est terminée,
|
|
112
|
+
## sauvegarde du score de l'utilisateur.
|
|
113
|
+
##
|
|
114
|
+
## @return self
|
|
115
|
+
##
|
|
116
|
+
def partieTerminee()
|
|
117
|
+
Header.pause = true
|
|
118
|
+
@Score.creer(@content["pseudo"], @Score.difficulte, Header.score)
|
|
119
|
+
|
|
120
|
+
if(@Utilisateur.partieUtilisateur?(@content["pseudo"]))
|
|
121
|
+
@Jeu.supprimerPartie(@content["pseudo"])
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
##
|
|
126
|
+
## Sauvegarde la partie dans un fichier yaml
|
|
127
|
+
##
|
|
128
|
+
## @return self
|
|
129
|
+
##
|
|
130
|
+
def sauvegarder()
|
|
131
|
+
@Jeu.chrono = Header.temps
|
|
132
|
+
@Jeu.score = Header.score
|
|
133
|
+
@Jeu.grille = @content["grille"]
|
|
134
|
+
@Jeu.niveau = @Score.difficulte
|
|
135
|
+
|
|
136
|
+
## Sauvegarde la partie dans un fichier yaml au nom de l'utilisateur
|
|
137
|
+
@Jeu.creerPartie (@content["pseudo"])
|
|
138
|
+
|
|
139
|
+
return self
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
##
|
|
143
|
+
## Calcule les endroits possible pour une valeur
|
|
144
|
+
##
|
|
145
|
+
## @param valeur La valeur
|
|
146
|
+
##
|
|
147
|
+
## @return self
|
|
148
|
+
##
|
|
149
|
+
def possibilites(valeur)
|
|
150
|
+
|
|
151
|
+
possibilites = Array.new()
|
|
152
|
+
|
|
153
|
+
## Calcule les coordonnées des cases qui permettent l'unicité sur la valeur
|
|
154
|
+
## passée en paramètre
|
|
155
|
+
for i in 0..8
|
|
156
|
+
for j in 0..8
|
|
157
|
+
if (@content["grille"][i][j]["editable"] && @Grille.valeurUnique(valeur, i, j) )
|
|
158
|
+
possibilites << [i, j]
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
return possibilites
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
##
|
|
168
|
+
## Réinitialise la grille
|
|
169
|
+
##
|
|
170
|
+
## @return self
|
|
171
|
+
##
|
|
172
|
+
def reinitialiser()
|
|
173
|
+
|
|
174
|
+
grille = @content["grille"]
|
|
175
|
+
|
|
176
|
+
for i in 0..8
|
|
177
|
+
for j in 0..8
|
|
178
|
+
if(grille[i][j]["editable"])
|
|
179
|
+
grille[i][j]["value"] = nil
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
@content["grille"] = grille
|
|
185
|
+
return self
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
##
|
|
190
|
+
## Calcule les candidats possibles pour chaque case
|
|
191
|
+
##
|
|
192
|
+
## @return Hash de tableau avec coordonnées des possibilités
|
|
193
|
+
## pour chaque chiffre
|
|
194
|
+
##
|
|
195
|
+
def getCandidats
|
|
196
|
+
|
|
197
|
+
candidats = Hash.new()
|
|
198
|
+
|
|
199
|
+
for i in 1..9
|
|
200
|
+
candidats[i.to_s] = self.possibilites(i)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
return candidats
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
##
|
|
207
|
+
## Méthode à définir dans tous les cas !
|
|
208
|
+
##
|
|
209
|
+
## @return self
|
|
210
|
+
##
|
|
211
|
+
def run()
|
|
212
|
+
|
|
213
|
+
## Reprends la grille dans son état (singleton pattern) si on viens
|
|
214
|
+
## d'une fenêtre par le biais d'un bouton retour
|
|
215
|
+
if(@Grille.grille != nil && !@content.has_key?("charger"))
|
|
216
|
+
@content["grille"] = @Grille.grille
|
|
217
|
+
|
|
218
|
+
## Reprends les configurations d'un fichier
|
|
219
|
+
elsif(@content.has_key?("charger"))
|
|
220
|
+
donnees = @Jeu.chargerPartie(@content["pseudo"])
|
|
221
|
+
|
|
222
|
+
@content["difficulte"] = donnees["niveau"]
|
|
223
|
+
Header.score = donnees["score"]
|
|
224
|
+
Header.temps = donnees["chrono"]
|
|
225
|
+
@content["grille"] = donnees["grille"]
|
|
226
|
+
@Grille.grille = donnees["grille"]
|
|
227
|
+
|
|
228
|
+
## Reggénère une grille
|
|
229
|
+
else
|
|
230
|
+
@content["grille"] = @Grille.generer(@content["difficulte"])
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
@content["config"] = @Configuration.getConfiguration(@content["pseudo"])
|
|
234
|
+
|
|
235
|
+
if(@Score.difficulte == nil)
|
|
236
|
+
@Score.difficulte = @content["difficulte"]
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
@Grille.countNbVides
|
|
240
|
+
@content["Techniques"] = TechniqueUsine.new()
|
|
241
|
+
|
|
242
|
+
return self
|
|
243
|
+
end
|
|
244
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# => Author:: Valentin, DanAurea
|
|
2
|
+
# => Version:: 0.1
|
|
3
|
+
# => Copyright:: © 2016
|
|
4
|
+
# => License:: Distributes under the same terms as Ruby
|
|
5
|
+
#
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
## Classe permettant de créer un contrôleur pour la vue FenetreMenu
|
|
9
|
+
##
|
|
10
|
+
class MenuControleur < Controller
|
|
11
|
+
|
|
12
|
+
##
|
|
13
|
+
## Initialize
|
|
14
|
+
##
|
|
15
|
+
def initialize
|
|
16
|
+
#charge le modele utilisateur
|
|
17
|
+
loadModel("Utilisateur")
|
|
18
|
+
loadModel("Jeu")
|
|
19
|
+
|
|
20
|
+
#paramètres fenêtre
|
|
21
|
+
@title = "Sudoku - Menu"
|
|
22
|
+
@width = 600
|
|
23
|
+
@height = 550
|
|
24
|
+
@resizable = false
|
|
25
|
+
@position= "CENTER_ALWAYS"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
##
|
|
30
|
+
## Charge la dernière partie utilisateur
|
|
31
|
+
##
|
|
32
|
+
## @return self
|
|
33
|
+
##
|
|
34
|
+
def charger
|
|
35
|
+
Core::changeTo("JeuLibre", :pseudo => @content["pseudo"], :charger => true)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
##
|
|
39
|
+
## Permet de connaître si une partie sauvegardée existe portant le nom du pseudo
|
|
40
|
+
##
|
|
41
|
+
## @param pseudo Le pseudo de l'utilisateur
|
|
42
|
+
##
|
|
43
|
+
## @return boolean
|
|
44
|
+
##
|
|
45
|
+
def partieExiste(pseudo)
|
|
46
|
+
return @Utilisateur.partieUtilisateur?(pseudo)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
##
|
|
50
|
+
## Méthode à définir dans tous les cas !
|
|
51
|
+
##
|
|
52
|
+
## @return self
|
|
53
|
+
##
|
|
54
|
+
def run
|
|
55
|
+
return self
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# => Author:: Valentin, DanAurea
|
|
2
|
+
# => Version:: 0.1
|
|
3
|
+
# => Copyright:: © 2016
|
|
4
|
+
# => License:: Distributes under the same terms as Ruby
|
|
5
|
+
#
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
## Classe permettant de créer un contrôleur pour la vue FenetreNiveau
|
|
9
|
+
##
|
|
10
|
+
class NiveauControleur < Controller
|
|
11
|
+
|
|
12
|
+
##
|
|
13
|
+
## Initialize
|
|
14
|
+
##
|
|
15
|
+
def initialize()
|
|
16
|
+
#charge le modèle utilisateur
|
|
17
|
+
loadModel("Utilisateur")
|
|
18
|
+
loadModel("Jeu")
|
|
19
|
+
loadModel("Grille")
|
|
20
|
+
|
|
21
|
+
#paramètres fenêtre
|
|
22
|
+
@title = "Sudoku - Choix difficulté"
|
|
23
|
+
@width = 600
|
|
24
|
+
@height = 550
|
|
25
|
+
@resizable = false
|
|
26
|
+
@position= "CENTER_ALWAYS"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
##
|
|
30
|
+
## Supprime toute partie existante pour le joueur
|
|
31
|
+
##
|
|
32
|
+
## @param pseudo Pseudo utilisateur
|
|
33
|
+
##
|
|
34
|
+
## @return self
|
|
35
|
+
##
|
|
36
|
+
def supprimerPartieExistante(pseudo)
|
|
37
|
+
|
|
38
|
+
if(@Utilisateur.partieUtilisateur?(pseudo))
|
|
39
|
+
@Jeu.supprimerPartie(pseudo)
|
|
40
|
+
end
|
|
41
|
+
@Grille.grille = nil
|
|
42
|
+
|
|
43
|
+
return self
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
##
|
|
47
|
+
## Méthode à définir dans tous les cas !
|
|
48
|
+
##
|
|
49
|
+
## @return self
|
|
50
|
+
##
|
|
51
|
+
def run()
|
|
52
|
+
return self
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# => Author:: Valentin, DanAurea
|
|
2
|
+
# => Version:: 0.1
|
|
3
|
+
# => Copyright:: © 2016
|
|
4
|
+
# => License:: Distributes under the same terms as Ruby
|
|
5
|
+
#
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
## Classe permettant de créer un contrôleur pour la vue FenetreNouvellePartie
|
|
9
|
+
##
|
|
10
|
+
class NouvellePartieControleur < Controller
|
|
11
|
+
|
|
12
|
+
##
|
|
13
|
+
## Initialize
|
|
14
|
+
##
|
|
15
|
+
def initialize()
|
|
16
|
+
#charge le modèle utilisateur
|
|
17
|
+
loadModel("Utilisateur")
|
|
18
|
+
#paramètres fenêtre
|
|
19
|
+
@title = "Sudoku - Nouvelle Partie"
|
|
20
|
+
@width = 600
|
|
21
|
+
@height = 550
|
|
22
|
+
@resizable = false
|
|
23
|
+
@position= "CENTER_ALWAYS"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
##
|
|
27
|
+
## Méthode à définir dans tous les cas !
|
|
28
|
+
##
|
|
29
|
+
## @return self
|
|
30
|
+
##
|
|
31
|
+
def run()
|
|
32
|
+
return self
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# => Controlleur vue principale
|
|
2
|
+
# => Author:: Valentin, DanAurea
|
|
3
|
+
# => Version:: 0.1
|
|
4
|
+
# => Copyright:: © 2016
|
|
5
|
+
# => License:: Distributes under the same terms as Ruby
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
##
|
|
9
|
+
## Classe permettant de créer un contrôleur pour la vue FenetrePrincipale
|
|
10
|
+
##
|
|
11
|
+
class PrincipaleControleur < Controller
|
|
12
|
+
|
|
13
|
+
##
|
|
14
|
+
## Initialize
|
|
15
|
+
##
|
|
16
|
+
def initialize ()
|
|
17
|
+
#paramètres fenêtre
|
|
18
|
+
@title = "Sudoku"
|
|
19
|
+
@resizable = false
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
## Méthode à définir dans tous les cas !
|
|
24
|
+
##
|
|
25
|
+
## @return self
|
|
26
|
+
##
|
|
27
|
+
def run()
|
|
28
|
+
return self
|
|
29
|
+
end
|
|
30
|
+
end
|