1 changed files with 0 additions and 110 deletions
@ -1,110 +0,0 @@ |
|||
from File import File_chaine as File |
|||
from random import shuffle |
|||
|
|||
class Carte: |
|||
def __init__(self, valeur, couleur): |
|||
self.valeur = valeur |
|||
self.couleur = couleur |
|||
|
|||
def compare(self, autre): |
|||
if self.valeur > autre.valeur: |
|||
return 1 |
|||
elif self.valeur < autre.valeur: |
|||
return -1 |
|||
else: |
|||
return 0 |
|||
|
|||
def __str__(self): |
|||
return str(self.valeur) + " " + self.couleur |
|||
|
|||
|
|||
class Jeu: |
|||
def __init__(self, nom1="joueur1", nom2="joueur 2"): |
|||
self.paquet = [] |
|||
self.f1 = None |
|||
self.f2 = None |
|||
self.nom1 = nom1 |
|||
self.nom2 = nom2 |
|||
|
|||
def distribue(self, nb_total_cartes): |
|||
self.paquet = [] |
|||
self.f1 = File() |
|||
self.f2 = File() |
|||
|
|||
couleurs = ["pique", "carreau", "coeur", "trèfle"] |
|||
|
|||
nombre = nb_total_cartes // 4 |
|||
|
|||
for valeur in range(nombre): |
|||
for couleur in couleurs: |
|||
self.paquet.append(Carte(valeur, couleur)) |
|||
|
|||
shuffle(self.paquet) |
|||
|
|||
for i in range(nombre * 2): |
|||
self.f1.enfiler(self.paquet[i]) |
|||
|
|||
for i in range(nombre * 2, nombre * 4): |
|||
self.f2.enfiler(self.paquet[i]) |
|||
|
|||
return self.f1, self.f2 |
|||
|
|||
def partie(self): |
|||
while not self.f1.est_vide() and not self.f2.est_vide(): |
|||
c1 = self.f1.defiler() |
|||
c2 = self.f2.defiler() |
|||
print(c1, c2, "\n") |
|||
|
|||
if c1.compare(c2) == 1: |
|||
self.f1.enfiler(c1) |
|||
self.f1.enfiler(c2) |
|||
|
|||
elif c1.compare(c2) == -1: |
|||
self.f2.enfiler(c1) |
|||
self.f2.enfiler(c2) |
|||
|
|||
else: |
|||
while True: |
|||
pot = [c1, c2] |
|||
|
|||
if self.f1.taille() < 2: |
|||
return "{} gagne ({} n'a pas assez de carte)".format(self.nom2, self.nom1) |
|||
if self.f2.taille() < 2: |
|||
return "{} gagne ({} n'a pas assez de carte)".format(self.nom1, self.nom2) |
|||
|
|||
pot.append(self.f1.defiler()) |
|||
pot.append(self.f2.defiler()) |
|||
|
|||
c1 = self.f1.defiler() |
|||
c2 = self.f2.defiler() |
|||
print(c1, c2) |
|||
|
|||
pot.extend([c1, c2]) |
|||
|
|||
if c1.compare(c2) == 1: |
|||
for c in pot: |
|||
self.f1.enfiler(c) |
|||
break |
|||
|
|||
elif c1.compare(c2) == -1: |
|||
for c in pot: |
|||
self.f2.enfiler(c) |
|||
break |
|||
|
|||
print(self.f1, "\n\n", self.f2, "\n") |
|||
|
|||
if self.f1.est_vide(): |
|||
return "{} gagne".format(self.nom2) |
|||
else: |
|||
return "{} gagne".format(self.nom1) |
|||
|
|||
|
|||
nom1 = input("Nom du joueur 1 : ") |
|||
nom2 = input("Nom du joueur 2 : ") |
|||
nb_total_cartes = int(input("Nombre total de cartes dans le paquet : ")) |
|||
|
|||
jeu = Jeu(nom1, nom2) |
|||
f1, f2 = jeu.distribue(nb_total_cartes) |
|||
print(f"{nom1} :", f1) |
|||
print(f"{nom2} :", f2) |
|||
print(jeu.partie()) |
|||
Loading…
Reference in new issue