Class: Pont
- Includes:
- Comparable
- Defined in:
- lib/Hashiparmentier/Core/Pont.rb
Overview
- Auteur
-
Brabant Mano
- Version
-
0.1
- Date
-
09/04/2020
Cette classe représente les ponts du Hashi
Hérite de Case
Constant Summary collapse
- NULLE =
Cette constante représente l’une des directions que peut prendre un pont(Seulement quand valeur du pont = 0)
0
- HORIZONTAL =
Cette constante représente l’une des directions que peut prendre un pont(Pont horizontal)
1
- VERTICAL =
Cette constante représente l’une des directions que peut prendre un pont(Pont vertical)
2
- MAX_LIGNE =
Cette constante représente le nombre maximum de ligne pour un pont
2
Instance Attribute Summary collapse
-
#couleurPont ⇒ Object
readonly
Returns the value of attribute couleurPont.
-
#couleurPontCourante ⇒ Object
readonly
Returns the value of attribute couleurPontCourante.
-
#direction ⇒ Object
readonly
Returns the value of attribute direction.
-
#directionSurbrillance ⇒ Object
Returns the value of attribute directionSurbrillance.
-
#marque ⇒ Object
Returns the value of attribute marque.
-
#surbrillance ⇒ Object
Returns the value of attribute surbrillance.
-
#valeur ⇒ Object
readonly
Returns the value of attribute valeur.
Attributes inherited from Case
Class Method Summary collapse
-
.construit(posX, posY, grille, direction, valeur) ⇒ Object
- Ce constructeur permet de créer un nouveau pont avec des valeurs param
-
posX La position sur l’axe des abscisse * posY La position sur l’axe des ordonnées * grille La grille sur laquelle se trouve le pont * direction La direction du pont * valeur La taille du pont.
-
-
.creer(posX, posY, grille) ⇒ Object
- Ce constructeur permet de créer un nouveau pont param
-
posX La position sur l’axe des abscisse * posY La position sur l’axe des ordonnées * grille La grille sur laquelle se trouve le pont.
-
-
.verifieDirection(direction) ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#<=>(autre) ⇒ Object
- Cette méthode permet de comparer des ponts entre-eux param
- autre L’autre pont à comparer return
-
0 si les ponts sont égaux * un nombre négatif si le premier pont est inférieur au deuxième * un nombre positif si le premier pont est supérieur au deuxième.
-
-
#augmenteValeur(direction) ⇒ Object
- Cette méthode permet d’augmenter la valeur du pont param
- direction La direction dans laquelle on veut augmenter le pont Si le pont que l’on augmente avait 2 trait alors le pont disparait return
-
true Si la valeur à été modifié * false Sinon.
-
-
#clickOn ⇒ Object
Cette méthode permet de simuler un “clic” sur le pont.
-
#demarquer ⇒ Object
Cette méthode permet de modifier le marquage du pont quand il est valide.
-
#diminueValeur(direction) ⇒ Object
- Cette méthode permet de diminuer la valeur du pont param
- direction La direction dans laquelle on veut diminuer le pont Si le pont que l’on diminue n’avait pas de trait alors un pont à deux trait apparait return
-
true Si la valeur à été modifié * false Sinon.
-
-
#estPont? ⇒ Boolean
- Cette méthode retourne vrai return
-
true.
-
-
#initialize(posX, posY, grille, direction, valeur) ⇒ Pont
constructor
:nodoc:.
-
#marquer ⇒ Object
Cette méthode permet de modifier le marquage du pont quand il est faux.
-
#metSurbrillance(direction) ⇒ Object
- Cette méthode permet de mettre en surbrillance le pont param
- direction La direction dans laquelle on veut mettre en surbrillance le pont return
-
true Si le pont a été mis en surbrillance * false Sinon.
-
-
#raz ⇒ Object
Cette méthode permet de remettre à zéro le pont.
-
#redoCouleurPont(couleurPont) ⇒ Object
Cette méthode permet de modifier la couleur que devrais prendre le pont s’il est modifié ainsi que sa couleur courante si elle était la même que la couleur après modification.
-
#supprSurbrillance(direction) ⇒ Object
- Cette méthode permet de diminuer la valeur du pont param
- direction La direction dans laquelle on veut enlever la surbrillance return
-
true Si la valeur n’est plus en surbrillance * false Sinon.
-
-
#to_s ⇒ Object
Cette méthode permet d’afficher le pont dans un terminal.
-
#undoCouleurPont(couleurPont) ⇒ Object
- Cette méthode permet de modifer la couleur la couleur que devrais prendre le pont s’il est modifié param
-
couleurPont La nouvelle couleur.
-
Methods inherited from Case
Constructor Details
#initialize(posX, posY, grille, direction, valeur) ⇒ Pont
:nodoc:
93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 93 def initialize(posX, posY, grille, direction, valeur) super(posX, posY, grille) @valeur = valeur @direction = direction @surbrillance = false @marque = false @directionSurbrillance = NULLE @couleurPont = Couleur::JAUNE @couleurPontCourante = Couleur::JAUNE end |
Instance Attribute Details
#couleurPont ⇒ Object (readonly)
Returns the value of attribute couleurPont.
48 49 50 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 48 def couleurPont @couleurPont end |
#couleurPontCourante ⇒ Object (readonly)
Returns the value of attribute couleurPontCourante.
51 52 53 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 51 def couleurPontCourante @couleurPontCourante end |
#direction ⇒ Object (readonly)
Returns the value of attribute direction.
36 37 38 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 36 def direction @direction end |
#directionSurbrillance ⇒ Object
Returns the value of attribute directionSurbrillance.
42 43 44 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 42 def directionSurbrillance @directionSurbrillance end |
#marque ⇒ Object
Returns the value of attribute marque.
45 46 47 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 45 def marque @marque end |
#surbrillance ⇒ Object
Returns the value of attribute surbrillance.
39 40 41 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 39 def surbrillance @surbrillance end |
#valeur ⇒ Object (readonly)
Returns the value of attribute valeur.
33 34 35 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 33 def valeur @valeur end |
Class Method Details
.construit(posX, posY, grille, direction, valeur) ⇒ Object
Ce constructeur permet de créer un nouveau pont avec des valeurs
- param
-
posX La position sur l’axe des abscisse
-
posY La position sur l’axe des ordonnées
-
grille La grille sur laquelle se trouve le pont
-
direction La direction du pont
-
valeur La taille du pont
81 82 83 84 85 86 87 88 89 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 81 def Pont.construit(posX, posY, grille, direction, valeur) if(Pont.verifieDirection(direction)) new(posX, posY, grille, direction, valeur) else new(posX, posY, grille, NULLE, 0) end end |
.creer(posX, posY, grille) ⇒ Object
Ce constructeur permet de créer un nouveau pont
- param
-
posX La position sur l’axe des abscisse
-
posY La position sur l’axe des ordonnées
-
grille La grille sur laquelle se trouve le pont
69 70 71 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 69 def Pont.creer(posX, posY, grille) Pont.construit(posX, posY, grille, NULLE, 0) end |
.verifieDirection(direction) ⇒ Object
:nodoc:
54 55 56 57 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 54 def Pont.verifieDirection(direction) #privée return true if([NULLE, HORIZONTAL, VERTICAL].include?(direction)) return false end |
Instance Method Details
#<=>(autre) ⇒ Object
Cette méthode permet de comparer des ponts entre-eux
- param
-
autre L’autre pont à comparer
- return
-
0 si les ponts sont égaux
-
un nombre négatif si le premier pont est inférieur au deuxième
-
un nombre positif si le premier pont est supérieur au deuxième
155 156 157 158 159 160 161 162 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 155 def <=>(autre) return 1 if(!autre.estPont?()) return @direction <=> autre.direction if(@direction != autre.direction) return @valeur <=> autre.valeur if(@valeur != autre.valeur) return 0 end |
#augmenteValeur(direction) ⇒ Object
Cette méthode permet d’augmenter la valeur du pont
- param
-
direction La direction dans laquelle on veut augmenter le pont
Si le pont que l’on augmente avait 2 trait alors le pont disparait
- return
-
true Si la valeur à été modifié
-
false Sinon
242 243 244 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 242 def augmenteValeur(direction) return modifValeur(direction, 1) end |
#clickOn ⇒ Object
Cette méthode permet de simuler un “clic” sur le pont
131 132 133 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 131 def clickOn() @grille.clickOnPont(self) end |
#demarquer ⇒ Object
Cette méthode permet de modifier le marquage du pont quand il est valide
288 289 290 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 288 def demarquer() @marque = false end |
#diminueValeur(direction) ⇒ Object
Cette méthode permet de diminuer la valeur du pont
- param
-
direction La direction dans laquelle on veut diminuer le pont
Si le pont que l’on diminue n’avait pas de trait alors un pont à deux trait apparait
- return
-
true Si la valeur à été modifié
-
false Sinon
254 255 256 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 254 def diminueValeur(direction) return modifValeur(direction, MAX_LIGNE) end |
#estPont? ⇒ Boolean
Cette méthode retourne vrai
- return
-
true
296 297 298 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 296 def estPont?() return true end |
#marquer ⇒ Object
Cette méthode permet de modifier le marquage du pont quand il est faux
282 283 284 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 282 def marquer() @marque = true end |
#metSurbrillance(direction) ⇒ Object
Cette méthode permet de mettre en surbrillance le pont
- param
-
direction La direction dans laquelle on veut mettre en surbrillance le pont
- return
-
true Si le pont a été mis en surbrillance
-
false Sinon
265 266 267 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 265 def metSurbrillance(direction) return modifSurbrillance(direction, true) end |
#raz ⇒ Object
Cette méthode permet de remettre à zéro le pont
137 138 139 140 141 142 143 144 145 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 137 def raz() @valeur = 0 @direction = NULLE @surbrillance = false @marque = false @directionSurbrillance = NULLE end |
#redoCouleurPont(couleurPont) ⇒ Object
Cette méthode permet de modifier la couleur que devrais prendre le pont s’il est modifié ainsi que sa couleur courante si elle était la même que la couleur après modification
Utilisé par les hypothèses
- param
-
couleurPont La nouvelle couleur
114 115 116 117 118 119 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 114 def redoCouleurPont(couleurPont) if(@couleurPont == @couleurPontCourante) @couleurPontCourante = couleurPont end @couleurPont = couleurPont end |
#supprSurbrillance(direction) ⇒ Object
Cette méthode permet de diminuer la valeur du pont
- param
-
direction La direction dans laquelle on veut enlever la surbrillance
- return
-
true Si la valeur n’est plus en surbrillance
-
false Sinon
276 277 278 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 276 def supprSurbrillance(direction) return modifSurbrillance(direction, false) end |
#to_s ⇒ Object
Cette méthode permet d’afficher le pont dans un terminal
166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 166 def to_s() ret = " " if(@surbrillance) ret = "P" end if(@direction == HORIZONTAL) if(@valeur == 1) ret = "-" elsif(@valeur == 2) ret = "=" end elsif(@direction == VERTICAL) if(@valeur == 1) ret = "|" elsif(@valeur == 2) ret = "\"" end end if(@marque) ret = "R" end return ret end |
#undoCouleurPont(couleurPont) ⇒ Object
Cette méthode permet de modifer la couleur la couleur que devrais prendre le pont s’il est modifié
- param
-
couleurPont La nouvelle couleur
125 126 127 |
# File 'lib/Hashiparmentier/Core/Pont.rb', line 125 def undoCouleurPont(couleurPont) @couleurPont = couleurPont end |