Browse Source

marche presque

master
parent
commit
d64c4d8cec
  1. 5
      .gitignore
  2. 84
      main.py
  3. 3
      util/bataille.py
  4. 24
      util/window.py

5
.gitignore

@ -1,2 +1,5 @@
__pyache__/ __pycache__/
lib/__pycache__/*
util/__pycache__/*
*pyc
*.swp *.swp

84
main.py

@ -1,66 +1,48 @@
from util.bataille import Jeux, Joueur from util.bataille import Jeux, Joueur
from lib.Pile import Pile_lst as Pile from lib.Pile import Pile_lst as Pile
from util.window import Window
if __name__ == "__main__": pile_j1 = Pile()
jeux = Jeux(32) pile_j2 = Pile()
carte_j1, carte_j2 = jeux.distribue()
nom = str(input("Entrez votre nom: ")) def jouer_tour(window):
j1 = Joueur(carte_j1, nom) if not window.p1.paquet.est_vide() and not window.p2.paquet.est_vide():
j2 = Joueur(carte_j2, "Bot") pile_j1.empiler(window.p1.tire_carte())
print(str(j1.paquet)) pile_j2.empiler(window.p2.tire_carte())
window.show_cards()
pile_j1 = Pile() gagne = pile_j1.sommet().compare(pile_j2.sommet())
pile_j2 = Pile()
#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():
pile_j1.empiler(j1.tire_carte())
pile_j2.empiler(j2.tire_carte())
#Comparaison du gagnant du duels de cartes
gagne = pile_j2.sommet().compare(pile_j1.sommet())
print(gagne)
print(pile_j1.sommet())
print(pile_j2.sommet())
#si la valeur de self est supérieure à la valeur de other.
if gagne == 1: if gagne == 1:
j = j1 j = window.p1
#si la valeur de other est supérieure à la valeur de self.
elif gagne == -1: elif gagne == -1:
j = j2 j = window.p2
else:
if not window.p1.paquet.est_vide() and not window.p2.paquet.est_vide():
pile_j1.empiler(window.p1.tire_carte())
pile_j2.empiler(window.p2.tire_carte())
else:
if window.p1.paquet.est_vide():
window.text_content.set("Vous avez perdu")
elif window.p2.paquet.est_vide():
window.text_content.set("L'ordinateur à perdu")
if gagne == 1 or gagne == -1: if gagne == 1 or gagne == -1:
while not pile_j1.est_vide() and not pile_j2.est_vide(): while not pile_j1.est_vide() and not pile_j2.est_vide():
j.paquet.enfiler(pile_j1.depiler()) j.paquet.enfiler(pile_j1.depiler())
j.paquet.enfiler(pile_j2.depiler()) j.paquet.enfiler(pile_j2.depiler())
#si les deux valeurs sont les mêmes, bataille !
else:
if not j1.paquet.est_vide() and not j2.paquet.est_vide():
pile_j1.empiler(j1.tire_carte())
pile_j2.empiler(j2.tire_carte())
else: else:
if j1.paquet.est_vide(): if window.p1.paquet.est_vide() and window.p2.paquet.est_vide():
print("Le perdant est {}".format(j1.nom)) window.text_content.set("Partie nulle")
elif j2.paquet.est_vide(): elif window.p1.paquet.est_vide():
print("Le perdant est {}".format(j2.nom)) window.text_content.set("Vous avez perdu")
elif window.p2.paquet.est_vide():
window.text_content.set("L'ordinateur à perdu")
#jeux = Jeux(32)
if j1.paquet.est_vide() and j2.paquet.est_vide(): window = Window(jouer_tour)
print("Partie nulle") window.build_pregame()
elif j1.paquet.est_vide(): window.mainloop()
print("Le perdant est {}".format(j1.nom))
elif j2.paquet.est_vide():
print("Le perdant est {}".format(j2.nom))

3
util/bataille.py

@ -73,9 +73,8 @@ class Joueur:
""" """
Construction de la classe Joueur. Construction de la classe Joueur.
""" """
def __init__(self, paquet, nom): def __init__(self, paquet):
self.paquet = paquet self.paquet = paquet
self.nom = nom
self.derniere_carte = None self.derniere_carte = None
def tire_carte(self): def tire_carte(self):

24
util/window.py

@ -1,23 +1,25 @@
from tkinter import Tk, Label, Button, IntVar, StringVar, Entry, Radiobutton from tkinter import Tk, Label, Button, IntVar, StringVar, Entry, Radiobutton
from PIL import Image, ImageTk from PIL import Image, ImageTk
#from util.bataille import Carte from util.bataille import Jeux, Joueur
class Window(Tk): class Window(Tk):
def __init__(self, p1, p2): JEU = None
def __init__(self, jouer_tour): #, p1, p2):
"""Initialise la fenêtre et prends les deux joueurs en arguments""" """Initialise la fenêtre et prends les deux joueurs en arguments"""
Tk.__init__(self) Tk.__init__(self)
self.title("Bataille") self.title("Bataille")
self.minsize(1300, 600) self.minsize(500, 500)
self.geometry("1300x600") self.geometry("500x500")
self.config(background="green") self.config(background="green")
self.p1 = p1 self.jouer_tour = jouer_tour
self.p2 = p2 #self.p1 = p1
#self.p2 = p2
self.c1 = None self.c1 = None
self.c2 = None self.c2 = None
self.build_pregame()
def build_pregame(self): def build_pregame(self):
self.name_var = StringVar() self.name_var = StringVar()
@ -45,6 +47,10 @@ class Window(Tk):
def start_game(self): def start_game(self):
self.destroy_pregame() self.destroy_pregame()
Window.JEU = Jeux(self.cards_var.get())
carte_p1, carte_p2 = Window.JEU.distribue()
self.p1 = Joueur(carte_p1)
self.p2 = Joueur(carte_p2)
self.build_game() self.build_game()
def build_game(self): def build_game(self):
@ -66,7 +72,7 @@ class Window(Tk):
self.count2 = Label(textvariable=self.taille_paquet2) self.count2 = Label(textvariable=self.taille_paquet2)
self.count2.grid(row=3, column=2) self.count2.grid(row=3, column=2)
self.button = Button(self, text="Jouer", command=self.show_cards) self.button = Button(self, text="Jouer", command=lambda: self.jouer_tour(self))
self.button.grid(row=6, column=1) self.button.grid(row=6, column=1)
#.set() pour changer le texte #.set() pour changer le texte
@ -85,6 +91,8 @@ class Window(Tk):
#self.taille_paquet1.set(self.p1.paquet.taille()) #self.taille_paquet1.set(self.p1.paquet.taille())
#self.taille_paquet2.set(self.p2.paquet.taille()) #self.taille_paquet2.set(self.p2.paquet.taille())
#self.text_content.set("a "+ str(self.p1.paquet.taille())) #self.text_content.set("a "+ str(self.p1.paquet.taille()))
self.taille_paquet1.set(self.p1.paquet.taille())
self.taille_paquet2.set(self.p2.paquet.taille())
img1 = ImageTk.PhotoImage(card_to_image(self.p1.derniere_carte)) img1 = ImageTk.PhotoImage(card_to_image(self.p1.derniere_carte))
self.c1 = Label(self, image=img1) self.c1 = Label(self, image=img1)

Loading…
Cancel
Save