From c1f531bb8e5e26758f059af1e47911dad3d4cacc Mon Sep 17 00:00:00 2001 From: w_iyad Date: Thu, 19 Dec 2024 15:58:39 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'app.py'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/app.py b/app.py index 282b486..b9c3fe2 100644 --- a/app.py +++ b/app.py @@ -37,6 +37,7 @@ class Joueur : self.maitre = maitre self.poules = poules self.nb_poules = len(poules) + self.poules_restantes = self.nb_poules def se_deplacer(self) : if not self.chien.puni : @@ -48,19 +49,25 @@ class Joueur : self.chien.dep_y(1) if pyxel.btn(pyxel.KEY_UP): self.chien.dep_y(-1) + + def punition(self) -> bool : if self.maitre.x >= self.chien.x and self.maitre.y >= self.chien.y and self.maitre.x <= self.chien.x + 8 and self.maitre.y <= self.chien.y + 8 : self.chien.puni = True def collecter(self) : - if self.nb_poules : + if self.nb_poules >= 1 : print(self.nb_poules) for i in range(self.nb_poules) : if self.poules[i].collecte == False and self.poules[i].x >= self.chien.x and self.poules[i].y >= self.chien.y and self.poules[i].x <= self.chien.x + 8 and self.poules[i].y <= self.chien.y + 8 : print("collision") self.poules[i].collecte = True + self.poules_restantes -= 1 + def croc(self) : + if pyxel.btn(pyxel.KEY_SPACE) : + self.ajouter_croc() class Maitre : def __init__(self,chien:'Chien') : @@ -99,15 +106,32 @@ class Poule : if self.collecte : self.x = None self.y = None + + def deplacement(self) : + rand_dist_x = rd.randint(0,4) + rand_dist_x = rd.choice((-1,0,1))*rand_dist_x + rand_dist_y = rd.randint(0,4) + rand_dist_y = rd.choice((-1,0,1))*rand_dist_y + self.x += rand_dist_x + self.y += rand_dist_y + if self.x > XMAX : + self.x = XMAX + elif self.x < 0 : + self.x = 0 + if self.y > YMAX : + self.y = YMAX + elif self.y < 0 : + self.y = 0 + def afficher(self) : pyxel.blt(self.x,self.y,0,0,8,8,8) - + class Map: def __init__(self,maitre:"Maitre",chien:"Chien") : self.maitre = maitre self.chien = chien - self.map = [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + self.map = [ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], @@ -122,12 +146,14 @@ class Map: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]] - + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + class Jeu: """Classe intégrant la gestion du jeu.""" def __init__(self) -> None: - + # Création de la fenêtre graphique pyxel.init(128, 128, title="Projet chien") pyxel.load("res.pyxres") @@ -140,7 +166,7 @@ class Jeu: self.maitre = Maitre(self.chien) self.joueur = Joueur(self.chien,self.maitre,self.poules) pyxel.run(self.controler, self.afficher) - + def controler(self:'Jeu') -> None: """déplacement avec les touches de directions""" @@ -148,7 +174,13 @@ class Jeu: self.joueur.se_deplacer() self.joueur.punition() self.joueur.collecter() - #self.deplacer_ennemis() + for i in range(len(self.poules)) : + if pyxel.frame_count % 30 == 0 : + self.poules[i].deplacement() + if self.joueur.poules_restantes == 0 : + self.fin() + if self.chien.puni : + pyxel.quit() #self.supprimer_ennemis_touches() def se_deplacer(self:'Jeu')->None : @@ -170,6 +202,10 @@ class Jeu: for i in range(4) : if not self.poules[i].collecte : self.poules[i].afficher() + + def fin(self:'Jeu') : + pyxel.text(64,64,'Bien joué !',7) + pyxel.quit() # Programme Principal ! application = Jeu() \ No newline at end of file