Browse Source

le programme principal fonctionne

master
corentin.bollet 10 months ago
parent
commit
6937608ffc
  1. 86
      Projetbataille0.py

86
Projetbataille0.py

@ -5,15 +5,12 @@ from File import File_chaine as File
from Pile import Pile_chaine as Pile
#______________________________________
class Carte:
"""classe d'une carte de valeur 'valeur' et de couleur 'couleur'"""
def __init__(self, valeur, couleur):
"""création de la carte"""
self.valeur = valeur
self.couleur = couleur
#________
self.couleur = couleur
def compare(self, other):
"""comparaison entre deux cartes"""
@ -31,7 +28,7 @@ class Carte:
tmp = ["Valet","Dame","Roi"][self.valeur-11]
return tmp + " de " + self.couleur
#__________
class Jeux:
"""classe d'un jeu"""
def __init__(self, nb_cartes):
@ -41,35 +38,33 @@ class Jeux:
couleurs = ["Coeur", "Carreaux", "Trèfle", "Pique"]
if self.nb_cartes == 32:
valeurs = [1, 7, 8, 9, 10, 11, 12, 13]
elif self.nb_cartes == 52:
valeurs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
else:
valeurs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
if self.nb_cartes > 52:
raise ValueError("Nombre de cartes invalide")
for couleur in couleurs:
for valeur in valeurs:
self.paquet.append(Carte(valeur, couleur))
shuffle(self.paquet)
if self.nb_cartes != 32 and self.nb_cartes != 52:
for i in range(52 - self.nb_cartes):
self.paquet.pop()
print(self.paquet)
print(len(self.paquet))
def distribue(self):
"""distribution des cartes"""
f1 = File()
f2 = File()
if self.nb_cartes == 52:
for i in range(26):
f1.enfiler(self.paquet.pop())
f2.enfiler(self.paquet.pop())
else:
for i in range(16):
f1.enfiler(self.paquet.pop())
f2.enfiler(self.paquet.pop())
for i in range(self.nb_cartes//2):
f1.enfiler(self.paquet.pop())
f2.enfiler(self.paquet.pop())
return f1, f2
#______________________________________
nb_cartes = 42 #52
partie = Jeux(32)
#une fonction utile
def vider_dans(mise_1, mise_2,paquet_joueur):
"""ajoute les cartes des mises dans le paquet du joueur (et supprime les mises)"""
while not mise_1.est_vide():
@ -80,50 +75,47 @@ def vider_dans(mise_1, mise_2,paquet_joueur):
def main():
"""fonction principale"""
jeu = Jeux(32)
jeu = Jeux(2)
(paquet_joueur1, paquet_joueur2) = jeu.distribue()
mise_joueur1 = Pile()
mise_joueur2 = Pile()
compteur_tours = 0
while not paquet_joueur1.est_vide() and not paquet_joueur2.est_vide():
print("joueur1",paquet_joueur1)
print("joueur2",paquet_joueur2)
if mise_joueur1.est_vide() or mise_joueur1.est_vide():
mise_joueur1.empiler(paquet_joueur1.defiler())
mise_joueur2.empiler(paquet_joueur2.defiler())
if mise_joueur1.sommet().compare(mise_joueur1.sommet()) == 1:
if mise_joueur1.sommet().compare(mise_joueur2.sommet()) == 1:
vider_dans(mise_joueur1, mise_joueur2, paquet_joueur1)
if paquet_joueur1.tete().compare(paquet_joueur2.tete()) == -1:
elif mise_joueur1.sommet().compare(mise_joueur2.sommet()) == -1:
vider_dans(mise_joueur1, mise_joueur2, paquet_joueur2)
else:
print("est vide ? (1)",paquet_joueur1.est_vide())
print("est vide ? (2)",paquet_joueur2.est_vide())
if paquet_joueur1.est_vide():
print("joueur1 est nul.")
return
else:
print("joueur2 est nul.")
return
for i in range(2):
mise_joueur1.empiler(paquet_joueur1.defiler())
mise_joueur2.empiler(paquet_joueur2.defiler())
print("joueur1",paquet_joueur1)
print("joueur2",paquet_joueur2)
compteur_tours += 1
if compteur_tours == 200:
print("aaaaaaaaaa c'est long")
return
if paquet_joueur1.est_vide():
print("joueur1 est nul.")
else:
print("joueur2 est nul.")
if __name__ == "__main__":
main()
#result = compare()
#if result == -1:
#if result == 1:
#if result == 0:
#______________________________________
#if f1.est_vide:
#print(f"victoire du joueur 1")
#elif f2.est_vide:
#print(f"victoire du joueur 2")
main()
Loading…
Cancel
Save