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"), Texture("classique/background.png"),
) )
# Bouton valider/rejouer
world.create_entity( world.create_entity(
Position(Display.WIDTH / 2, 900), Position(Display.WIDTH / 2, 900),
Order(1), Order(1),
Centered(), Centered(),
Texture("classique/valider.png"), Texture("classique/valider.png"),
HoveredTexture("classique/valider_hover.png"), HoveredTexture("classique/valider_hover.png"),
Clickable(lambda world, _: check_number(world)), Clickable(lambda world, _: _update(world)),
) )
# Zone de saisie
world.create_entity( world.create_entity(
Position(Display.WIDTH / 2, 750), Position(Display.WIDTH / 2, 750),
Order(2), Order(2),
@ -104,6 +106,7 @@ def __initialize_world(world: World):
Text("il reste : 7 essais"), Text("il reste : 7 essais"),
) )
# Bouton pour revenir au menu
world.create_entity( world.create_entity(
Order(11), Order(11),
Position(100, 100), Position(100, 100),
@ -112,18 +115,21 @@ def __initialize_world(world: World):
HoveredTexture("classique/arrow_hover.png"), HoveredTexture("classique/arrow_hover.png"),
) )
# Les ressources.
world[NombreEssai] = NombreEssai(7) world[NombreEssai] = NombreEssai(7)
world[RandomNumber] = RandomNumber(random.randint(0, 99)) world[RandomNumber] = RandomNumber(random.randint(0, 99))
world[IsRunning] = IsRunning() 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. 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: if IsRunning not in world:
# on relance le jeu.
world[Game].change_scene("classique") world[Game].change_scene("classique")
for entity in world.query(typing.Typing, Text): for entity in world.query(typing.Typing, Text):
@ -131,20 +137,21 @@ def check_number(world: World):
number: str = entity[Text] number: str = entity[Text]
entity[Text] = Text("") entity[Text] = Text("")
# On gere le l'input de l'utilisateur.
for entity_text in world.query(TextDialogue): 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 !") entity_text[Text] = Text("tu doit entrer un nombre !")
return return
if world[RandomNumber] == int(number): if world[RandomNumber] == int(number): # si il a trouve le nombre.
end_game(world, "Gagné") end_game(world, "Gagné")
return return
elif world[NombreEssai] <= 1: elif world[NombreEssai] <= 1: # si il n'a plus d'essai.
end_game(world, "Perdu") end_game(world, "Perdu")
print("Perdu") print("Perdu")
return return
elif world[RandomNumber] > int(number): elif world[RandomNumber] > int(number): # si le nombre est trop petit.
entity_text[Text] = Text("Plus grand...") entity_text[Text] = Text("Plus grand...")
else: else: # si le nombre est trop grand.
entity_text[Text] = Text("Plus petit...") entity_text[Text] = Text("Plus petit...")
# on update l'affichage du nombre d'essai. # on update l'affichage du nombre d'essai.
@ -157,10 +164,11 @@ def check_number(world: World):
def end_game(world: World, state: str): 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): for entity_text in world.query(TextDialogue):
entity_text[Text] = Text(f"{state} !") entity_text[Text] = Text(f"{state} !")
@ -183,11 +191,11 @@ def end_game(world: World, state: str):
def _check_return(world: World): 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] keyboard = world[Keyboard]
if keyboard.is_key_pressed("return"): if keyboard.is_key_pressed("return"):
check_number(world) _update(world)
SCENE = ( SCENE = (