forked from Nowyyy/Project-Hashi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Pont.rb
99 lines (77 loc) · 2.59 KB
/
Pont.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
require 'gtk3'
load "Ile.rb"
##
# Représentation des ponts du jeu
##
class Pont < Ile
# @typePont -> Représente les différents types de pont.
# @directionPont -> Représente la direction du pont.
# @estDouble -> Attribut permettant de savoir si un pont est double ou non
# Représente les différents types de pont. (0 = aucun bord, 1 = un pont, 2 = deux pont)
attr_accessor :typePont
# Représente la direction du pont. (0 = pas de pont, 1 = horizontal, 2 = vertical)
attr_accessor :directionPont
# Attribut permettant de savoir si un pont est double ou non
attr_accessor :estDouble
# Constructeur d'un pont
# * +grid+ Référence sur la grille
# * +col+ Référence sur la grille
# * +lig+ Référence sur la grille
def initialize(grid, col, lig )
super(grid, '0', col, lig )
@typePont = 0
@estDouble = false
@directionPont = 0
self.set_name('pont')
css_file = Gtk::CssProvider.new
css_file.load(data: <<-CSS)
@import url("css/plateau_style.css");
CSS
self.style_context.add_provider(css_file, Gtk::StyleProvider::PRIORITY_USER)
self.set_sensitive(false) # Un pont n'est pas cliquable par défaut
self.status = 'p'
end
# Retourne la direction du pont
def get_directionPont
return @directionPont
end
# Modifie la direction du pont
def set_directionPont(val)
@directionPont = val
return self
end
# Modifie le type du pont
def set_typePont(val)
if val >= 0
@typePont = val
else
@typePont = 0
end
return self
end
# Retourne le type du pont
def get_typePont
return @typePont
end
# Méthode responsable de la mise à jour d'un pont.
def update()
if @typePont == 0 && @directionPont == 0
self.image.from_file= "Ressources/Pont/0.png"
elsif @typePont == 1
# Si le pont == 1 alors il est horizontal
# Sinon il est vertical
if @directionPont == 1
self.image.from_file= "Ressources/Pont/h_simple.png"
else
self.image.from_file= "Ressources/Pont/v_simple.png"
end
elsif @typePont == 2
if @directionPont == 1
self.image.from_file= "Ressources/Pont/h_double.png"
else
self.image.from_file= "Ressources/Pont/v_double.png"
end
end
return self
end
end