Browse Source

aled

master
parent
commit
1217e9c2d1
  1. 2
      .gitingore
  2. 21
      main.py
  3. 16
      test.py
  4. BIN
      util/.window.py.swp
  5. 24
      util/bataille.py

2
.gitignore → .gitingore

@ -1,2 +1,2 @@
__pycache__ __pycache__
test.py *.swp

21
main.py

@ -10,31 +10,36 @@ if __name__ == "__main__":
j2 = Joueur(carte_j2, "Bot") j2 = Joueur(carte_j2, "Bot")
print(str(j1.paquet)) print(str(j1.paquet))
pile_j1 = Pile() pile_j1 = Pile()
pile_j2 = Pile() pile_j2 = Pile()
#Tant que les joueurs ont des cartes on continue #Tant que les joueurs ont des cartes on continue
#TODO: vérifier avant empilage pour cas où égalité alors que l'un n'a plus de cartes
while not j1.paquet.est_vide() and not j2.paquet.est_vide(): while not j1.paquet.est_vide() and not j2.paquet.est_vide():
pile_j1.empiler(j1.tire_carte()) pile_j1.empiler(j1.tire_carte())
pile_j2.empiler(j2.tire_carte()) pile_j2.empiler(j2.tire_carte())
#Comparaison du gagnant du duels de cartes #Comparaison du gagnant du duels de cartes
gagne = pile_j1.sommet().compare(pile_j2.sommet()) gagne = pile_j1.sommet().compare(pile_j2.sommet())
print(gagne)
#si la valeur de self est supérieure à la valeur de other. #si la valeur de self est supérieure à la valeur de other.
#TODO: Simplifier 1 et -1 par boucle qui vide les deux piles dans le gagnant
if gagne == 1: if gagne == 1:
j1.paquet.enfiler(pile_j2.depiler()) #j1.paquet.enfiler(pile_j1.depiler())
#j1.paquet.enfiler(pile_j2.depiler())
#si la valeur de other est supérieure à la valeur de self. #si la valeur de other est supérieure à la valeur de self.
elif gagne == 2: elif gagne == -1:
j2.paquet.enfiler(pile_j1.depiler()) #j2.paquet.enfiler(pile_j2.depiler())
#j2.paquet.enfiler(pile_j1.depiler())
#si les deux valeurs sont les mêmes, bataille ! #si les deux valeurs sont les mêmes, bataille !
else: else:
for loop in range(2): pile_j1.empiler(j1.tire_carte())
pile_j1.empiler(j1.tire_carte()) pile_j2.empiler(j2.tire_carte())
pile_j2.empiler(j2.tire_carte()) #for loop in range(2):
# pile_j1.empiler(j1.tire_carte())
# pile_j2.empiler(j2.tire_carte())
if j1.paquet.est_vide() and j2.paquet.est_vide(): if j1.paquet.est_vide() and j2.paquet.est_vide():
print("Partie nulle") print("Partie nulle")

16
test.py

@ -0,0 +1,16 @@
from util.bataille import Joueur, Carte
from util.window import *
from lib.File import File_lst as File
if __name__ == "__main__":
#card_to_image(Carte(1, 1))
#card_to_image(Carte(4, 2))
#card_to_image(Carte(13, 0))
f1 = File()
f2 = File()
f1.enfiler(Carte(2,0))
f2.enfiler(Carte(3,3))
app = Window(Joueur(f1, "A"), Joueur(f2, "B"))
app.p1.tire_carte()
app.p2.tire_carte()
app.mainloop()

BIN
util/.window.py.swp

Binary file not shown.

24
util/bataille.py

@ -24,18 +24,25 @@ class Carte:
self.couleur = couleur self.couleur = couleur
def compare(self, other): def compare(self, other):
"""Fonction permettant la comparaison entre deux cartes."""
if self.valeur > other.valeur: if self.valeur > other.valeur:
return 1 return 1
elif self.valeur < other.valeur: elif self.valeur < other.valeur:
return -1 return -1
else: else:
return 0 return 0
def __str__(self):
"""Fonction permettant la distinction/séparation entre la valeur et la couleur de la carte."""
return str(self.valeur) + "/" + str(self.couleur)
class Jeux: class Jeux:
"""
Construction de la classe Jeux.
"""
def __init__(self, nbcartes): def __init__(self, nbcartes):
self.paquet = File() self.paquet = File()
self.couleur = File()
if nbcartes == 32: if nbcartes == 32:
for couleur in [Carte.CARREAU, Carte.COEUR, Carte.PIQUE, Carte.TREFLE]: for couleur in [Carte.CARREAU, Carte.COEUR, Carte.PIQUE, Carte.TREFLE]:
valeurs = [7, 8, 9, 10, Carte.VALET, Carte.DAME, Carte.ROI, Carte.AS] valeurs = [7, 8, 9, 10, Carte.VALET, Carte.DAME, Carte.ROI, Carte.AS]
@ -43,13 +50,16 @@ class Jeux:
rand = randint(0, len(valeurs)-1) rand = randint(0, len(valeurs)-1)
carte = Carte(valeurs.pop(rand), couleur) carte = Carte(valeurs.pop(rand), couleur)
self.paquet.enfiler(carte) self.paquet.enfiler(carte)
#self.couleur.enfiler(couleur)
#valeurs.pop(rand)
else: else:
pq = [2, 3, 4, 5, 6, 7, 8, 9, 10, Carte.VALET, Carte.DAME, Carte.ROI, Carte.AS] for couleur in [Carte.CARREAU, Carte.COEUR, Carte.PIQUE, Carte.TREFLE]:
valeurs = [2, 3, 4, 5, 6, 7, 8, 9, 10, Carte.VALET, Carte.DAME, Carte.ROI, Carte.AS]
for i in range(13):
rand = randint(0, len(valeurs)-1)
carte = Carte(valeurs.pop(rand), couleur)
self.paquet.enfiler(carte)
def distribue(self): def distribue(self):
"""Fonction permettant le renvoie de deux files contenant la moitié des cartes du paquet."""
cp = self.paquet cp = self.paquet
f1 = File() f1 = File()
f2 = File() f2 = File()
@ -60,11 +70,15 @@ class Jeux:
class Joueur: class Joueur:
"""
Construction de la classe Joueur.
"""
def __init__(self, paquet, nom): def __init__(self, paquet, nom):
self.paquet = paquet self.paquet = paquet
self.nom = nom self.nom = nom
self.derniere_carte = None self.derniere_carte = None
def tire_carte(self): def tire_carte(self):
"""Fonction qui défile la tête de la file et la renvoie."""
self.derniere_carte = self.paquet.defiler() self.derniere_carte = self.paquet.defiler()
return self.derniere_carte return self.derniere_carte

Loading…
Cancel
Save