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