Browse Source

Mise à jour de 'README.md'

master
EnoxX-FiRe 2 months ago
parent
commit
c4813c0ca0
  1. 193
      README.md

193
README.md

@ -1,89 +1,104 @@
#Importation ##PYTHON##
import pyxel ''' 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)
import random
Module basé sur une architecture MVC (modèle-vue-controleur) globale et également intégrée aux objets.
#Constantes
COULEUR_PERE_NOEL = 1 '''
COULEUR_TIR = 10
COULEUR_ENNEMI = 8 #Importation
import pyxel
#Déclaration des classes import random
"""Classe intégrant la gestion du Modèle et de la Vue relative au Perenoel du joueur."""
class Perenoel: #Constantes
COULEUR_PERE_NOEL = 1
def __init__(self, couleur:int=COULEUR_PERE_NOEL) -> None: COULEUR_TIR = 10
self.x = 60 # coordonnée x du coin haut à gauche du carré COULEUR_ENNEMI = 8
self.y = 60 # coordonnée y du coin haut à gauche du carré
self.couleur = couleur # couleur du vaisseau à l'écran #Déclaration des classes
"""Classe intégrant la gestion du Modèle et de la Vue relative au Perenoel du joueur."""
def set_x(self:'Perenoel', dx:int) -> None: class Perenoel:
"""Déplace le Perenoel à gauche si dx positif, à droite si négatif"""
self.x = self.x + dx def __init__(self, couleur:int=COULEUR_PERE_NOEL) -> None:
if self.x < 0: self.x = 60 # coordonnée x du coin haut à gauche du carré
self.x = 0 self.y = 60 # coordonnée y du coin haut à gauche du carré
elif self.x >= 120: self.couleur = couleur # couleur du vaisseau à l'écran
self.x = 120
def set_x(self:'Perenoel', dx:int) -> None:
def set_y(self:'Perenoel', dy:int) -> None: """Déplace le Perenoel à gauche si dx positif, à droite si négatif"""
"""Déplace le Perenoel en bas si dy positif, en haut si négatif""" self.x = self.x + dx
self.y = self.y + dy if self.x < 0:
if self.y < 0: self.x = 0
self.y = 0 elif self.x >= 120:
elif self.y >= 120: self.x = 120
self.y = 120
def set_y(self:'Perenoel', dy:int) -> None:
"""Déplace le Perenoel en bas si dy positif, en haut si négatif"""
def get_coord(self:'Perenoel') -> tuple[int, int]: self.y = self.y + dy
"""Renvoie le couple (x, y) qui contient les coordonnées (du coin haut gauche) du Perenoel""" if self.y < 0:
return (self.x, self.y) self.y = 0
elif self.y >= 120:
def afficher(self:'Perenoel') -> None: self.y = 120
"""Affiche le Perenoel"""
pyxel.blt(self.x, self.y, 0, 23, 68, 16, 25)
print("bonjour") def get_coord(self:'Perenoel') -> tuple[int, int]:
# (..., 0, 0, 0, 8, 8) car Image 0 à partir de (0;0) de taille 8*8) """Renvoie le couple (x, y) qui contient les coordonnées (du coin haut gauche) du Perenoel"""
"""Classe intégrant la gestion du Modèle relative au joueur.""" return (self.x, self.y)
class Joueur:
def afficher(self:'Perenoel') -> None:
def __init__(self, perenoel:'Perenoel', vies:int) -> None: """Affiche le Perenoel"""
self.vies = vies # A 0, le joueur a perdu pyxel.blt(self.x, self.y, 0, 23, 68, 16, 25)
self.perenoel = perenoel # L'instance de Vaisseau du joueur print("bonjour")
# (..., 0, 0, 0, 8, 8) car Image 0 à partir de (0;0) de taille 8*8)
def est_vivant(self:'Joueur') -> bool: """Classe intégrant la gestion du Modèle relative au joueur."""
"""Prédicat qui renvoie vrai si le joueur a encore des vies""" class Joueur:
return self.vies > 0
def __init__(self, perenoel:'Perenoel', vies:int) -> None:
def get_vies(self:'Joueur') -> int: self.vies = vies # A 0, le joueur a perdu
"""Renvoie le nombre de vies du joueur""" self.perenoel = perenoel # L'instance de Vaisseau du joueur
return self.vies
def est_vivant(self:'Joueur') -> bool:
def perd_une_vie(self:'Joueur') -> None: """Prédicat qui renvoie vrai si le joueur a encore des vies"""
"""Fait perdre une vie au joueur mais en imposant un minimum de 0""" return self.vies > 0
self.vies = self.vies - 1
if self.vies < 0: def get_vies(self:'Joueur') -> int:
self.vies = 0 """Renvoie le nombre de vies du joueur"""
return self.vies
"""Classe intégrant la gestion du jeu."""
class Jeu: def perd_une_vie(self:'Joueur') -> None:
"""Fait perdre une vie au joueur mais en imposant un minimum de 0"""
def __init__(self) -> None: self.vies = self.vies - 1
if self.vies < 0:
# Création de la fenêtre graphique self.vies = 0
pyxel.init(128, 128, title="Nuit du c0de")
pyxel.load("lorenzoxxxDark.pyxres") """Classe intégrant la gestion du jeu."""
class Jeu:
# Initialisation des données du jeu
self.perenoel = Perenoel() def __init__(self) -> None:
self.joueur = Joueur(self.perenoel, 4)
self.tirs = [] # Tableau des tirs # Création de la fenêtre graphique
self.ennemis = [] # Tableau des ennemis présents pyxel.init(256, 256, title="Nuit du c0de")
self.explosions = [] # Tableau des explosions pyxel.load("lorenzoxxxDark.pyxres")
# Lancement de l'alternance 30x par seconde entre controleur et vue # Initialisation des données du jeu
pyxel.run(self.controler, self.afficher) self.perenoel = Perenoel()
def controler(self): self.joueur = Joueur(self.perenoel, 4)
pass self.tirs = [] # Tableau des tirs
self.ennemis = [] # Tableau des ennemis présents
def afficher(self:'Jeu') -> None: self.explosions = [] # Tableau des explosions
self.perenoel.afficher()
j = Jeu() # Lancement de l'alternance 30x par seconde entre controleur et vue
pyxel.run(self.controler, self.afficher)
def controler(self):
if pyxel.btn(pyxel.KEY_RIGHT):
self.perenoel.set_x(1)
if pyxel.btn(pyxel.KEY_LEFT):
self.perenoel.set_x(-1)
if pyxel.btn(pyxel.KEY_DOWN):
self.perenoel.set_y(1)
if pyxel.btn(pyxel.KEY_UP):
self.perenoel.set_y(-1)
def afficher(self:'Jeu') -> None:
pyxel.cls(4)
self.perenoel.afficher()
j = Jeu()
Loading…
Cancel
Save