-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaccueil.py
152 lines (130 loc) · 5.02 KB
/
accueil.py
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
"""
Projet 2 : Ricosheep
Amal ABDALLAH
Nicolas SEBAN
Adam SOUIOU
"""
from bouton import Boutons
from plateau import Plateau, FichierInvalide
from ricosheep import boutons_jeu_init, jeu
from os import path
import randomizer
import animation
import graphiques
import cfg
import fltk
import selecteur
import sauvegarde
import editeur
import son
invite_reprendre = {'Jouer', 'Niveaux', "100% Aléatoire", "Aléatoire contrôlé"}
duree_anime = 0.2
def menu():
son.song("Wait")
boutons = Boutons((20, 20))
logo = graphiques.image_grille(
2, 0, 17, 5,
path.join('media', 'images', 'Logo_ricosheep.png'), boutons.grille)
boutons.cree_bouton_simple(3, 6, 16, 7, 'Jouer',
arrondi=0.75)
boutons.cree_bouton_simple(3, 9, 16, 10, 'Niveaux',
arrondi=0.75)
boutons.cree_bouton_simple(3, 12, 16, 13, "Editeur de niveaux",
arrondi=0.75)
boutons.cree_bouton_simple(3, 15, 9, 16, "100% Aléatoire",
arrondi=0.75)
boutons.cree_bouton_simple(10, 15, 16, 16, 'Aléatoire contrôlé',
arrondi=0.75)
boutons.cree_bouton_booleen(
18, 18, 19, 19,
'son', cfg, '🔊', '🔇', arrondi=1, marge_texte=0.8, icone=True
)
boutons.cree_bouton_booleen(
15, 18, 16, 19,
'animation', cfg, '🐑', '🚫', arrondi=1, marge_texte=0.8, icone=True
)
plateau_pos = (0, 0, 15, 22)
boutons.init()
ev = None
liste_chute = animation.initialisation(12)
while True:
try:
fltk.efface_tout()
graphiques.background("#3f3e47")
if cfg.animation:
animation.dessiner(liste_chute)
boutons.dessiner_boutons(ev)
fltk.afficher_image(
logo.centre_x, logo.centre_y,
logo.image, 'center'
)
ev = fltk.donne_ev()
tev = fltk.type_ev(ev)
click = boutons.nom_clic(ev)
if tev == 'Quitte':
return
elif tev == "ClicGauche":
# On propose au joueur de reprendre
if click in invite_reprendre:
plateau = None
try:
if sauvegarde.est_valide():
plateau, boutons_jeu = sauvegarde.menu()
if plateau is not None:
jeu(plateau, boutons_jeu)
continue
except FileNotFoundError:
print("La map associée à la sauvegarde n'existe plus",
"veuillez sélectionner une autre map")
if click == 'Jouer':
son.sound('MenuAccept')
try:
boutons_jeu = boutons_jeu_init()
plateau = Plateau(
cfg.carte,
duree_anime=duree_anime,
grille_base=boutons_jeu.grille,
grille_pos=plateau_pos,
)
son.song("Otherside")
jeu(plateau, boutons_jeu)
except FileNotFoundError:
print("La map demandée n'existe pas")
pass
except FichierInvalide:
print("Le format de la map est incorrect")
pass
elif click == "Niveaux":
son.sound('MenuBleep')
selecteur.menu()
cfg.maj()
elif click == "Editeur de niveaux":
son.sound('MenuBleep')
editeur.debut()
elif click == "100% Aléatoire":
son.sound('MenuAccept')
carte = randomizer.generation100()
boutons_jeu = boutons_jeu_init()
plateau = Plateau(carte,
duree_anime=duree_anime,
grille_base=boutons_jeu.grille,
grille_pos=plateau_pos)
jeu(plateau, boutons_jeu)
elif click == "Aléatoire contrôlé":
son.sound('MenuAccept')
plateau = randomizer.menu_control()
if plateau is None:
continue
boutons_jeu = boutons_jeu_init()
plateau.gen_grille(
duree_anime=duree_anime,
grille_base=boutons_jeu.grille,
grille_pos=plateau_pos)
jeu(plateau, boutons_jeu)
elif click == 'son':
son.toggle_sound()
elif click == 'animation':
cfg.toggle_sound_anim('animation')
fltk.mise_a_jour()
except KeyboardInterrupt:
return