Classique #35

Merged
tipragot merged 11 commits from Classique into main 2023-10-29 18:51:42 +00:00
Showing only changes of commit e62a0ec223 - Show all commits

View file

@ -64,15 +64,17 @@ def __initialize_world(world: World):
Texture("classique/background.png"),
)
# Bouton valider/rejouer
world.create_entity(
Position(Display.WIDTH / 2, 900),
Order(1),
Centered(),
Texture("classique/valider.png"),
HoveredTexture("classique/valider_hover.png"),
Clickable(lambda world, _: check_number(world)),
Clickable(lambda world, _: _update(world)),
)
# Zone de saisie
world.create_entity(
Position(Display.WIDTH / 2, 750),
Order(2),
@ -104,6 +106,7 @@ def __initialize_world(world: World):
Text("il reste : 7 essais"),
)
# Bouton pour revenir au menu
world.create_entity(
Order(11),
Position(100, 100),
@ -112,18 +115,21 @@ def __initialize_world(world: World):
HoveredTexture("classique/arrow_hover.png"),
)
# Les ressources.
world[NombreEssai] = NombreEssai(7)
world[RandomNumber] = RandomNumber(random.randint(0, 99))
world[IsRunning] = IsRunning()
def check_number(world: World):
def _update(world: World):
"""
Verifie si le nombre donné est le meme que celui que l'on a choisi.
Boucle du jeu.
"""
# si le jeu s'est arrete, on empeche de continuer.
# si le jeu s'est arrete.
if IsRunning not in world:
# on relance le jeu.
world[Game].change_scene("classique")
for entity in world.query(typing.Typing, Text):
@ -131,20 +137,21 @@ def check_number(world: World):
number: str = entity[Text]
entity[Text] = Text("")
# On gere le l'input de l'utilisateur.
for entity_text in world.query(TextDialogue):
if number == "":
if number == "": # si il a rien evoyé.
entity_text[Text] = Text("tu doit entrer un nombre !")
return
if world[RandomNumber] == int(number):
if world[RandomNumber] == int(number): # si il a trouve le nombre.
end_game(world, "Gagné")
return
elif world[NombreEssai] <= 1:
elif world[NombreEssai] <= 1: # si il n'a plus d'essai.
end_game(world, "Perdu")
print("Perdu")
return
elif world[RandomNumber] > int(number):
elif world[RandomNumber] > int(number): # si le nombre est trop petit.
entity_text[Text] = Text("Plus grand...")
else:
else: # si le nombre est trop grand.
entity_text[Text] = Text("Plus petit...")
# on update l'affichage du nombre d'essai.
@ -157,10 +164,11 @@ def check_number(world: World):
def end_game(world: World, state: str):
"""
Create the end buton
fonction applé quand le jeu est fini.
"""
del world[IsRunning]
del world[IsRunning] # le jeu est fini.
# On affiche le message de fin.
for entity_text in world.query(TextDialogue):
entity_text[Text] = Text(f"{state} !")
@ -183,11 +191,11 @@ def end_game(world: World, state: str):
def _check_return(world: World):
"""
Verifie si la touche return est appuyée.
Verifie si la touche entrée est appuyée.
"""
keyboard = world[Keyboard]
if keyboard.is_key_pressed("return"):
check_number(world)
_update(world)
SCENE = (