You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
3.1 KiB
63 lines
3.1 KiB
import tkinter as tk
|
|
from tkinter import messagebox
|
|
from tkinter.constants import *
|
|
from bataille import Partie_TeSt
|
|
|
|
class Fenetre(tk.Tk):
|
|
def __init__(self):
|
|
tk.Tk.__init__(self)
|
|
self.title("Jeu de Bataille")
|
|
self.geometry("600x400")
|
|
self.configure(bg='#EDFAF0')
|
|
|
|
#creation d'un entrée pour inserer le nombre de cartes
|
|
bouton1 = tk.Button(self, text="Créer", command=self.creer, bg='white').pack(side=BOTTOM, anchor='sw', padx = 100, pady = 5)
|
|
self.entry = tk.Entry(self, width=40)
|
|
self.entry.pack(side=BOTTOM, anchor='sw', padx = 5, pady = 5)
|
|
tk.Label(self, text="Saisir le nombre de carte avant de jouer :", font=("Arial", 10)).pack(side=BOTTOM, anchor='sw', padx=5)
|
|
|
|
#bouton qui permet de lancer une partie
|
|
bouton2 = tk.Button(self, text="Jouer",command=self.jouer, bg='white').pack(side=TOP)
|
|
|
|
frame_table = tk.Frame(self)
|
|
frame_table.pack(fill=BOTH, expand="yes")
|
|
|
|
#coté gauche celui du joueur
|
|
self.frame_joueur = tk.LabelFrame(frame_table, text="Joueur", padx=20, pady=20, bg="#18B500")
|
|
self.frame_joueur.pack(side= LEFT, fill="both",expand="yes")
|
|
frame_carte_joueur = tk.LabelFrame(self.frame_joueur, text = "Carte joueur", bg="#EDFAF0", relief="raised", bd=3)
|
|
frame_carte_joueur.pack(expand="yes")
|
|
self.carte_joueur = tk.Label(frame_carte_joueur, text="...",font=("Arial", 60), bg="#EDFAF0")
|
|
self.carte_joueur.pack(padx=30, pady=50)
|
|
|
|
# coté droit, celui de l'ordinateur
|
|
self.frame_ordi = tk.LabelFrame(frame_table, text="Ordinateur", padx=20, pady=20, bg="#18B500")
|
|
self.frame_ordi.pack(side = LEFT, fill="both", expand="yes")
|
|
frame_carte_ordi = tk.LabelFrame(self.frame_ordi, text = "Carte ordinateur", bg="#EDFAF0", relief="raised", bd=3)
|
|
frame_carte_ordi.pack(expand="yes")
|
|
self.carte_ordi = tk.Label(frame_carte_ordi, text="...",font=("Arial", 60), bg="#EDFAF0")
|
|
self.carte_ordi.pack(padx=30, pady=50)
|
|
|
|
def creer(self):
|
|
""crée une partie en fonction du nombre de carte donné""
|
|
nb = int(self.entry.get())
|
|
self.partie = Partie_TeSt(nb)
|
|
|
|
|
|
def jouer(self):
|
|
""fait jouer un tour et affiche les cartes des joueur ainsi qu'une couronne derriere le nom de celui qui a le plus de carte dans son jeu""
|
|
if self.partie.get_winner() == "Partie en cours...":
|
|
self.partie.play_round()
|
|
self.carte_joueur.config(text=self.partie.get_cards()[0])
|
|
self.carte_ordi.config(text=self.partie.get_cards()[1])
|
|
if self.partie.get_size()[0] > self.partie.get_size()[1]:
|
|
self.frame_joueur.config(text="Joueur 👑")
|
|
self.frame_ordi.config(text="Ordinateur")
|
|
else :
|
|
self.frame_ordi.config(text="Ordinateur 👑")
|
|
self.frame_joueur.config(text="Joueur ")
|
|
else :
|
|
messagebox.showinfo("Vainqueur", "Le gagnant est " + self.partie.get_winner())
|
|
|
|
window = Fenetre()
|
|
window.mainloop()
|