Browse Source

Mise à jour de 'README.md'

master
EnoxX-FiRe 2 months ago
parent
commit
c8edadf8d6
  1. 162
      README.md

162
README.md

@ -1,104 +1,96 @@
# ProjetPyxel2 ##PYTHON##
''' ''' Programme pyxel inspiré d'un tutoriel en ligne de "la Nuit du Code" https://nuit-du-code.forge.apps.education.fr/DOCUMENTATION/PYTHON/01-presentation/ https://www.cahiernum.net/KV8H5B Licence GNU (https://github.com/nuitducode/DOCUMENTATION/blob/main/LICENSE)
Programme pyxel inspiré d'un tutoriel en ligne de "la Nuit du Code"
https://nuit-du-code.forge.apps.education.fr/DOCUMENTATION/PYTHON/01-presentation/
https://www.cahiernum.net/KV8H5B
Licence GNU (https://github.com/nuitducode/DOCUMENTATION/blob/main/LICENSE)
Module basé sur une architecture MVC (modèle-vue-controleur) globale et également intégrée aux objets. Module basé sur une architecture MVC (modèle-vue-controleur) globale et également intégrée aux objets.
''' '''
# Importation #Importation
import pyxel
import random
import pyxel #Constantes
import random COULEUR_PERE_NOEL = 1
COULEUR_TIR = 10
COULEUR_ENNEMI = 8
#Déclaration des classes
# Constantes
COULEUR_PERE_NOEL = 1
COULEUR_TIR = 10
COULEUR_ENNEMI = 8
# Déclaration des classes
class Perenoel:
"""Classe intégrant la gestion du Modèle et de la Vue relative au Perenoel du joueur.""" """Classe intégrant la gestion du Modèle et de la Vue relative au Perenoel du joueur."""
class Perenoel:
def __init__(self, couleur:int=COULEUR_PERE_NOEL) -> None:
self.x = 60 # coordonnée x du coin haut à gauche du carré def __init__(self, couleur:int=COULEUR_PERE_NOEL) -> None:
self.y = 60 # coordonnée y du coin haut à gauche du carré self.x = 60 # coordonnée x du coin haut à gauche du carré
self.couleur = couleur # couleur du vaisseau à l'écran self.y = 60 # coordonnée y du coin haut à gauche du carré
self.couleur = couleur # couleur du vaisseau à l'écran
def set_x(self:'Perenoel', dx:int) -> None:
"""Déplace le Perenoel à gauche si dx positif, à droite si négatif""" def set_x(self:'Perenoel', dx:int) -> None:
self.x = self.x + dx """Déplace le Perenoel à gauche si dx positif, à droite si négatif"""
if self.x < 0: self.x = self.x + dx
self.x = 0 if self.x < 0:
elif self.x >= 120: self.x = 0
self.x = 120 elif self.x >= 120:
self.x = 120
def set_y(self:'Perenoel', dy:int) -> None:
"""Déplace le Perenoel en bas si dy positif, en haut si négatif""" def set_y(self:'Perenoel', dy:int) -> None:
self.y = self.y + dy """Déplace le Perenoel en bas si dy positif, en haut si négatif"""
if self.y < 0: self.y = self.y + dy
self.y = 0 if self.y < 0:
elif self.y >= 120: self.y = 0
self.y = 120 elif self.y >= 120:
self.y = 120
def get_coord(self:'Perenoel') -> tuple[int, int]:
"""Renvoie le couple (x, y) qui contient les coordonnées (du coin haut gauche) du Perenoel""" def get_coord(self:'Perenoel') -> tuple[int, int]:
return (self.x, self.y) """Renvoie le couple (x, y) qui contient les coordonnées (du coin haut gauche) du Perenoel"""
return (self.x, self.y)
def afficher(self:'Perenoel') -> None:
"""Affiche le Perenoel""" def afficher(self:'Perenoel') -> None:
pyxel.blt(self.x, self.y, 23, 68, 0, 15, 25) """Affiche le Perenoel"""
# (..., 0, 0, 0, 8, 8) car Image 0 à partir de (0;0) de taille 8*8 pyxel.blt(self.x, self.y, 0, 23, 68, 16, 25)
print("bonjour")
# (..., 0, 0, 0, 8, 8) car Image 0 à partir de (0;0) de taille 8*8)
class Joueur:
"""Classe intégrant la gestion du Modèle relative au joueur.""" """Classe intégrant la gestion du Modèle relative au joueur."""
class Joueur:
def __init__(self, perenoel:'Perenoel', vies:int) -> None: def __init__(self, perenoel:'Perenoel', vies:int) -> None:
self.vies = vies # A 0, le joueur a perdu self.vies = vies # A 0, le joueur a perdu
self.perenoel = perenoel # L'instance de Vaisseau du joueur self.perenoel = perenoel # L'instance de Vaisseau du joueur
def est_vivant(self:'Joueur') -> bool: def est_vivant(self:'Joueur') -> bool:
"""Prédicat qui renvoie vrai si le joueur a encore des vies""" """Prédicat qui renvoie vrai si le joueur a encore des vies"""
return self.vies > 0 return self.vies > 0
def get_vies(self:'Joueur') -> int: def get_vies(self:'Joueur') -> int:
"""Renvoie le nombre de vies du joueur""" """Renvoie le nombre de vies du joueur"""
return self.vies return self.vies
def perd_une_vie(self:'Joueur') -> None: def perd_une_vie(self:'Joueur') -> None:
"""Fait perdre une vie au joueur mais en imposant un minimum de 0""" """Fait perdre une vie au joueur mais en imposant un minimum de 0"""
self.vies = self.vies - 1 self.vies = self.vies - 1
if self.vies < 0: if self.vies < 0:
self.vies = 0 self.vies = 0
class Jeu:
"""Classe intégrant la gestion du jeu.""" """Classe intégrant la gestion du jeu."""
def __init__(self) -> None: class Jeu:
def __init__(self) -> None:
# Création de la fenêtre graphique # Création de la fenêtre graphique
pyxel.init(128, 128, title="Nuit du c0de") pyxel.init(128, 128, title="Nuit du c0de")
pyxel.load("bjr.pyxres") pyxel.load("bjrr.pyxres")
# Initialisation des données du jeu # Initialisation des données du jeu
self.perenoel = Perenoel() self.perenoel = Perenoel()
self.joueur = Joueur(self.Perenoel, 4) self.joueur = Joueur(self.perenoel, 4)
self.tirs = [] # Tableau des tirs self.tirs = [] # Tableau des tirs
self.ennemis = [] # Tableau des ennemis présents self.ennemis = [] # Tableau des ennemis présents
self.explosions = [] # Tableau des explosions self.explosions = [] # Tableau des explosions
# Lancement de l'alternance 30x par seconde entre controleur et vue # Lancement de l'alternance 30x par seconde entre controleur et vue
pyxel.run(self.controler, self.afficher) pyxel.run(self.controler, self.afficher)
def controler(self):
pass
def afficher(self:'Jeu') -> None: def afficher(self:'Jeu') -> None:
self.perenoel.afficher() self.perenoel.afficher()
j = Jeu()
application = Jeu()

Loading…
Cancel
Save