Class: Jeu
- Inherits:
-
Object
- Object
- Jeu
- Defined in:
- lib/Hashiparmentier/Core/Jeu.rb
Overview
Cette classe permet de s’occuper du déroulement d’une partie
Instance Attribute Summary collapse
-
#grille ⇒ Object
Returns the value of attribute grille.
Class Method Summary collapse
-
.creer(difficulte, tailleGrille, compte, jeuUI, labelChrono, labelScore) ⇒ Object
Ce constructeur permet de creer un nouveau Jeu.
Instance Method Summary collapse
-
#action ⇒ Object
decide de l’action du joueur.
-
#afficherAide(aide) ⇒ Object
affichage de l’aide :arg: aide : String.
-
#chargerGrille(difficulte, tailleGrille, compte) ⇒ Object
charge une grille pour une partie :arg: difficulte :arg: tailleGrille : Entier :arg: compte : Compte.
-
#demandeCoord ⇒ Object
demande des coordonnées à l’utilisateur pour la sélection d’une case dans la grille.
-
#initialize(difficulte, tailleGrille, compte, jeuUI, labelChrono, labelScore) ⇒ Jeu
constructor
:nodoc:.
-
#lanceToi ⇒ Object
algorithme du jeu :arg: grille : Grille :arg: compte : Compte.
- #modifScore(val) ⇒ Object
Constructor Details
#initialize(difficulte, tailleGrille, compte, jeuUI, labelChrono, labelScore) ⇒ Jeu
:nodoc:
48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/Hashiparmentier/Core/Jeu.rb', line 48 def initialize(difficulte, tailleGrille, compte, jeuUI, labelChrono, labelScore) @labelChrono = labelChrono @labelScore = labelScore @grille = chargerGrille(difficulte, tailleGrille, compte) @jeuUI = jeuUI @compte = compte @scoreCourant = 500 * tailleGrille @labelScore.set_label(@scoreCourant.to_s) @checkpoints = Pile.creer() @verifGrille = VerifierGrille.creer(@grille) @donnerTech = DonnerTechnique.creer(@grille) @chronoGrille = Chrono.new(self, @labelChrono) @threadChrono = Thread.new{@chronoGrille.lancerChrono()} end |
Instance Attribute Details
#grille ⇒ Object
Returns the value of attribute grille.
36 37 38 |
# File 'lib/Hashiparmentier/Core/Jeu.rb', line 36 def grille @grille end |
Class Method Details
.creer(difficulte, tailleGrille, compte, jeuUI, labelChrono, labelScore) ⇒ Object
Ce constructeur permet de creer un nouveau Jeu
:arg: difficulte :arg: tailleGrille : Entier :arg: compte : Compte
43 44 45 |
# File 'lib/Hashiparmentier/Core/Jeu.rb', line 43 def Jeu.creer(difficulte, tailleGrille, compte, jeuUI, labelChrono, labelScore) new(difficulte, tailleGrille, compte, jeuUI, labelChrono, labelScore) end |
Instance Method Details
#action ⇒ Object
decide de l’action du joueur
145 146 147 148 149 150 151 152 153 154 155 156 |
# File 'lib/Hashiparmentier/Core/Jeu.rb', line 145 def action puts "1 : pose/supprime un pont\n" puts "2 : undo\n" puts "3 : redo\n" puts "4 : Sauvegarder la grille\n" puts "5 : Creer hypothese\n" puts "6 : Valider hypothese\n" puts "7 : Supprimer hypothese\n" puts "8 : Verifier grille\n" puts "9 : Donner technique\n" return gets.chomp.to_i end |
#afficherAide(aide) ⇒ Object
affichage de l’aide :arg: aide : String
133 134 135 |
# File 'lib/Hashiparmentier/Core/Jeu.rb', line 133 def afficherAide(aide) puts aide end |
#chargerGrille(difficulte, tailleGrille, compte) ⇒ Object
charge une grille pour une partie :arg: difficulte :arg: tailleGrille : Entier :arg: compte : Compte
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/Hashiparmentier/Core/Jeu.rb', line 70 def chargerGrille(difficulte, tailleGrille, compte) lst = Sauvegarde.liste(compte, tailleGrille, difficulte) if(lst.count() == 0) raise("Y a pas de sauvegarde") end lst.each_with_index do |s, index| print "\n", index, ":", "\n" s.getGrille().afficheToi() end res = -1 while(res < 0 || res >= lst.length) res = gets.chomp().to_i() end return lst[res].getGrille() end |
#demandeCoord ⇒ Object
demande des coordonnées à l’utilisateur pour la sélection d’une case dans la grille
161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/Hashiparmentier/Core/Jeu.rb', line 161 def demandeCoord puts "Saisir coordonnées d'une ile :" puts "coordonnée en x : " x = gets.chomp.to_i puts "coordonnée en y : " y = gets.chomp.to_i if(@grille.sortLimite?(x, y)) raise("Les coordonnée ne sont pas correctes") end if(!@grille.getCase(x, y).estIle?()) raise("La case n'est pas une ile") end return @grille.getCase(x, y) end |
#lanceToi ⇒ Object
algorithme du jeu :arg: grille : Grille :arg: compte : Compte
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 |
# File 'lib/Hashiparmentier/Core/Jeu.rb', line 91 def lanceToi() win = false #T'es mauvais Jack @jeuUI.AfficherGrille() while(!win) @grille.afficheToi case action() when 1 begin ile2 = demandeCoord() @grille.clickOnIle(ile2) rescue => e puts "Erreur : " + e.() end self.modifScore(-1000) when 2 @grille.undo() when 3 @grille.redo() when 4 Sauvegarde.recuperer(@compte, @grille).setGrille(@grille).sauvegarder() when 5 @grille.creerHypothese() when 6 @grille.valideHypothese() when 7 @grille.supprimeHypothese(self) when 8 @verifGrille.aider() when 9 @donnerTech.aider() else #puts "puts" end end end |
#modifScore(val) ⇒ Object
137 138 139 140 |
# File 'lib/Hashiparmentier/Core/Jeu.rb', line 137 def modifScore(val) @scoreCourant += val @labelScore.set_label(@scoreCourant.to_s) end |