Browse Source

modif cartes

master
parent
commit
d631cdd47f
  1. 65
      main.py
  2. BIN
      util/.bataille.py.swp
  3. 62
      util/bataille.py

65
main.py

@ -1,38 +1,45 @@
from util.bataille import * from util.bataille import Jeux, Joueur
from lib.Pile import Pile_lst from lib.Pile import Pile_lst as Pile
def bataille(): if __name__ == "__main__":
'''Fonction permettant de lancer le jeu''' jeux = Jeux(32)
jeux = Jeux() carte_j1, carte_j2 = jeux.distribue()
carte_j1, carte_j2 = jeux.depiler()
nom = str(input("Entrez votre nom")) nom = str(input("Entrez votre nom: "))
j1 = Joueur(carte_j1, nom) j1 = Joueur(carte_j1, nom)
j2 = Joueur(carte_j2, "Bot") j2 = Joueur(carte_j2, "Bot")
p_j1 = Pile_lst() print(str(j1.paquet))
p_j2 = Pile_lst()
while not j1.paquet_j.est_vide() and not j2.paquet_j.est_vide():#tant que les joueurs ont des cartes on continue.
p_j1.empile(j1.tire_carte()) pile_j1 = Pile()
p_j2.empile(j2.tire_carte()) pile_j2 = Pile()
gagne = p_j1.sommet().compare(p_j2.sommet())
#comparaison du gagnant du duels de cartes: #Tant que les joueurs ont des cartes on continue
if gagne == 1: while not j1.paquet.est_vide() and not j2.paquet.est_vide():
pile_j1.empiler(j1.tire_carte())
pile_j2.empiler(j2.tire_carte())
#Comparaison du gagnant du duels de cartes
gagne = pile_j1.sommet().compare(pile_j2.sommet())
#si la valeur de self est supérieure à la valeur de other. #si la valeur de self est supérieure à la valeur de other.
j1.paquet_j.append(p_j2.depiler()) if gagne == 1:
j1.paquet.enfiler(pile_j2.depiler())
elif gagne == 2:
#si la valeur de other est supérieure à la valeur de self. #si la valeur de other est supérieure à la valeur de self.
j2.paquet_j.append(p_j1.depiler()) elif gagne == 2:
j2.paquet.enfiler(pile_j1.depiler())
else:
#si les deux valeurs sont les mêmes, bataille ! #si les deux valeurs sont les mêmes, bataille !
else:
for loop in range(2): for loop in range(2):
p_j1.empile(j1.tire_carte()) pile_j1.empiler(j1.tire_carte())
p_j2.empile(j2.tire_carte()) pile_j2.empiler(j2.tire_carte())
if j1.paquet_j.est_vide() and j2.paquet_j.est_vide(): if j1.paquet.est_vide() and j2.paquet.est_vide():
print("parti nul") print("Partie nulle")
elif j1.paquet_j.est_vide(): elif j1.paquet.est_vide():
print("Le perdant est le joueur 1") print("Le perdant est le joueur 1")
else: else:
print("Le perdant est le joueur 2") print("Le perdant est le joueur 2")

BIN
util/.bataille.py.swp

Binary file not shown.

62
util/bataille.py

@ -1,45 +1,54 @@
from random import * from random import randint
from lib.File import File_lst as File from lib.File import File_lst as File
class Carte: class Carte:
""" """
Classe représentant une carte Classe représentant une carte
Arguments: Arguments:
valeur: int -- Valeur allant de 2 à 14 (Valet=11, Dame=12, Roi=13, As=14) valeur: int -- Valeur allant de 2 à 14 (Valet=11, Dame=12, Roi=13, As=14)
couleur: int -- Allant de 0 à 3 (Carreau, Coeur, Pique, Trefle) couleur: int -- Allant de 0 à 3 (0: Carreau, 1: Coeur, 2: Pique, 3: Trefle)
""" """
CARREAU = 0
COEUR = 1
PIQUE = 2
TREFLE = 3
VALET = 11
DAME = 12
ROI = 13
AS = 14
def __init__(self, valeur, couleur): def __init__(self, valeur, couleur):
self.valeur = valeur self.valeur = valeur
self.couleur = couleur self.couleur = couleur
def compare(self, other): def compare(self, other):
if self.valeur > other: if self.valeur > other.valeur:
return 1 return 1
elif self.valeur < other: elif self.valeur < other.valeur:
return -1 return -1
else: else:
return 0 return 0
class Jeux: class Jeux:
def __init__(self, nbcartes): def __init__(self, nbcartes):
self.paquet = File() self.paquet = File()
self.couleur = File() self.couleur = File()
#Cartes 1 à 10 et 11 pour Valet, 12 pour Dame et 13 pour Roi et 14 pour As
if nbcartes == 32: if nbcartes == 32:
for i in range(4): for couleur in [Carte.CARREAU, Carte.COEUR, Carte.PIQUE, Carte.TREFLE]:
crt = [7, 8, 9, 10, 11, 12, 13, 14] valeurs = [7, 8, 9, 10, Carte.VALET, Carte.DAME, Carte.ROI, Carte.AS]
couleur = [0, 1, 2, 3] for i in range(8):
for val in range(len(crt)): rand = randint(0, len(valeurs)-1)
rd = randint(0, len(crt)-1) carte = Carte(valeurs.pop(rand), couleur)
self.paquet.enfiler(crt[rd]) self.paquet.enfiler(carte)
self.couleur.enfiler(couleur[i]) #self.couleur.enfiler(couleur)
crt.pop(rd) #valeurs.pop(rand)
else: else:
pq = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] pq = [2, 3, 4, 5, 6, 7, 8, 9, 10, Carte.VALET, Carte.DAME, Carte.ROI, Carte.AS]
def distribue(self): def distribue(self):
cp = self.paquet cp = self.paquet
f1 = File() f1 = File()
@ -48,13 +57,14 @@ class Jeux:
f1.enfiler(cp.defiler()) f1.enfiler(cp.defiler())
f2.enfiler(cp.defiler()) f2.enfiler(cp.defiler())
return f1, f2 return f1, f2
class Joueur: class Joueur:
def __init__(self, paquet_j, nom): def __init__(self, paquet, nom):
self.paquet_j = paquet_j self.paquet = paquet
self.nom = nom self.nom = nom
self.derniere_carte = None
def tire_carte(self): def tire_carte(self):
self.derniere_carte = self.paquet_j.defiler() self.derniere_carte = self.paquet.defiler()
return self.derniere_carte return self.derniere_carte

Loading…
Cancel
Save