game.py: docstrings

This commit is contained in:
Vincent Plessy 2023-12-26 09:15:02 +01:00 committed by neox
parent e2e60d4d28
commit b22050a89f
No known key found for this signature in database
GPG Key ID: 2974E1D5F25DFCC8
1 changed files with 44 additions and 0 deletions

44
game.py
View File

@ -51,11 +51,20 @@ VERTICAL = 0
HORIZONTAL = 1
def calcul_coord(x,y):
"""
calcule une nouvelle coordonnée
@params void
@return une nouvelle position
"""
return y * DIM + x
class Plateau:
def __init__(self):
"""
constructor
"""
self.trous = [ [False] * DIM * DIM ] * 2 # Espace 7 × 7, deux fois pour
# vertical et horizontal
self.billes = [] # liste de tuples (x,y)
@ -66,16 +75,33 @@ class Plateau:
return self
def générer_tirettes():
"""
genere les tirettes
@params void
@return void
"""
for orientation in range(2): # vertical et horizontal
for i in range(DIM):
self.tirettes[orientation][i] =
Tirette(i+(orientation*DIM), self)
def est_ce_un_trou(self,x,y):
"""
la methode renvoie True si c'est un Trou , False sinon
@params x l'abscisse et y l'ordonnée
@return boolean
"""
return self.trous[calcul_coord(x,y)]
def mise_à_jour(self):
"""
la methode enleve le tuple de coordonnées (x,y) correspondant a la bille dans la liste self.billes
si il y a un trou a ces coordonnées
@params self
@return void
"""
for bille in self.billes:
if self.est_ce_un_trou(bille[0], bille[1]):
self.billes.pop(bille)
@ -84,6 +110,7 @@ class Plateau:
class Tirette:
def __init__(self, numéro, plateau, orientation=random.randint(0,1), trous=[]):
"""
Constructor
"""
self.numéro = numéro # définit son placement dans l'espace
@ -109,6 +136,11 @@ class Tirette:
return self
def calcul_pos(self, offset):
"""
la methode calcule les coordonnées de la tirette selon l'orientation de la tirette
@params offset
@return coordonnées
"""
if self.orientation == VERTICAL:
return calcul_coord(self.numéro, offset - self.position)
@ -117,6 +149,9 @@ class Tirette:
def déplacer(self, nouvelle_position):
"""
La methode enleve le trou d'origine et rajoute un trou lorsqu'on déplace la Tirette
@params nouvelle_position
@return boolean
"""
# Ancienne position de la tirette
ancienne_position = tirette.position
@ -138,10 +173,19 @@ class Tirette:
class Joueur:
def __init__(self, plateau):
"""
constructor
"""
self.plateau = plateau
return self
def placer_bille(self, x, y):
"""
la methode verifie si il n'y a pas de trou et de billes aux coordonnées du tuple (x,y)
@params (x,y) coordonnées
@return boolean
"""
if not self.plateau.est_ce_un_trou(x,y):
if not (x,y) in self.plateau.billes:
self.plateau.billes.append((x,y))