Browse Source

Mise à jour de 'app.py'

master
w_iyad 1 month ago
parent
commit
154ad60cd4
  1. 74
      app.py

74
app.py

@ -1,20 +1,17 @@
# Pyxel Studio # Pyxel Studio
# Importations ============================================================ # Importations ============================================================
import pyxel import pyxel
import random as rd import random as rd
# CONSTANTES et variables globales lues directement ========================= # CONSTANTES et variables globales lues directement =========================
XMAX = 128 XMAX = 128
YMAX = 128 YMAX = 128
# Déclaration des classes # Déclaration des classes
class Chien : class Chien :
def __init__(self) -> None: def __init__(self) -> None:
self.x = 60 # coordonnée x du coin haut à gauche du carré self.x = 60 # coordonnée x du coin haut à gauche du carré
self.y = 60 # coordonnée y du coin haut à gauche du carré self.y = 60 # coordonnée y du coin haut à gauche du carré
self.puni = False
def afficher(self:'Chien') -> None: def afficher(self:'Chien') -> None:
"""Affiche le chien""" """Affiche le chien"""
@ -28,7 +25,6 @@ class Chien :
self.x = XMAX self.x = XMAX
def dep_y(self,dist) : def dep_y(self,dist) :
self.y = self.y + dist self.y = self.y + dist
if self.y < 0: if self.y < 0:
self.y = 0 self.y = 0
@ -36,31 +32,45 @@ class Chien :
self.y = YMAX self.y = YMAX
class Joueur : class Joueur :
def __init__(self,chien:'Chien',maitre:'Maitre',poules:list) :
def __init__(self,chien:'Chien') :
self.chien = chien self.chien = chien
self.maitre = maitre
self.poules = poules
self.nb_poules = len(poules)
def se_deplacer(self) : def se_deplacer(self) :
if pyxel.btn(pyxel.KEY_RIGHT): if not self.chien.puni :
self.chien.dep_x(1) if pyxel.btn(pyxel.KEY_RIGHT):
if pyxel.btn(pyxel.KEY_LEFT): self.chien.dep_x(1)
self.chien.dep_x(-1) if pyxel.btn(pyxel.KEY_LEFT):
if pyxel.btn(pyxel.KEY_DOWN): self.chien.dep_x(-1)
self.chien.dep_y(1) if pyxel.btn(pyxel.KEY_DOWN):
if pyxel.btn(pyxel.KEY_UP): self.chien.dep_y(1)
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 nb_poules :
for i in range(nb_poules) :
if 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 :
nb_poules -= 1
self.poules[i].collecte = True
class Maitre : class Maitre :
def __init__(self) : def __init__(self,chien:'Chien') :
self.poursuite = False self.poursuite = False
self.blesse = False self.blesse = False
self.chien = chien
self.x = rd.randint(0,XMAX) self.x = rd.randint(0,XMAX)
self.y = rd.randint(0,YMAX) self.y = rd.randint(0,YMAX)
def deplacer(self) : def deplacer(self) :
rand_dist_x = rd.randint(0,XMAX/16) rand_dist_x = rd.randint(0,4)
rand_dist_x = rd.choice((-1,0,1))*rand_dist_x rand_dist_x = rd.choice((-1,0,1))*rand_dist_x
rand_dist_y = rd.randint(0,YMAX/16) rand_dist_y = rd.randint(0,4)
rand_dist_y = rd.choice((-1,0,1))*rand_dist_y rand_dist_y = rd.choice((-1,0,1))*rand_dist_y
self.x += rand_dist_x self.x += rand_dist_x
self.y += rand_dist_y self.y += rand_dist_y
@ -77,7 +87,18 @@ class Maitre :
pyxel.blt(self.x,self.y,0,8,0,8,8) pyxel.blt(self.x,self.y,0,8,0,8,8)
class Poule : class Poule :
pass def __init__(self) :
self.x = rd.randint(0,XMAX)
self.y = rd.randint(0,YMAX)
self.collecte = False
def si_collecte(self) :
if self.collecte :
self.x = None
self.y = None
def afficher(self) :
pyxel.blt(self.x,self.y,0,0,8,8,8)
class Jeu: class Jeu:
"""Classe intégrant la gestion du jeu.""" """Classe intégrant la gestion du jeu."""
@ -89,8 +110,11 @@ class Jeu:
self.chien = Chien() self.chien = Chien()
self.maitre = Maitre() self.poules = []
self.joueur = Joueur(self.chien) for i in range(4) :
self.poules.append(Poule())
self.maitre = Maitre(self.chien)
self.joueur = Joueur(self.chien,self.maitre,self.poules)
pyxel.run(self.controler, self.afficher) pyxel.run(self.controler, self.afficher)
def controler(self:'Jeu') -> None: def controler(self:'Jeu') -> None:
@ -98,10 +122,12 @@ class Jeu:
self.maitre.deplacer() self.maitre.deplacer()
self.joueur.se_deplacer() self.joueur.se_deplacer()
self.joueur.punition()
#self.croc() #self.croc()
#self.deplacer_ennemis() #self.deplacer_ennemis()
#self.supprimer_ennemis_touches() #self.supprimer_ennemis_touches()
def se_deplacer(self:'Jeu')->None : def se_deplacer(self:'Jeu')->None :
if pyxel.btn(pyxel.KEY_RIGHT) : if pyxel.btn(pyxel.KEY_RIGHT) :
self.chien.dep_x(2) self.chien.dep_x(2)
@ -118,7 +144,9 @@ class Jeu:
self.chien.afficher() self.chien.afficher()
self.maitre.afficher() self.maitre.afficher()
for i in range(4) :
if not self.poules[i].collecte :
self.poules[i].afficher()
# Programme Principal ! # Programme Principal !
application = Jeu() application = Jeu()
Loading…
Cancel
Save