Browse Source

suppression fichier originel car pas d'interface (seulement du texte)

master
bollet.c 9 months ago
parent
commit
737baf8b26
  1. 118
      Projetbataille0.py

118
Projetbataille0.py

@ -1,118 +0,0 @@
import tkinter as tk
import time
from random import shuffle
from File import File_chaine as File
from Pile import Pile_chaine as Pile
class Carte:
"""classe d'une carte de valeur 'valeur' et de couleur 'couleur'"""
def __init__(self, valeur, couleur):
"""création de la carte"""
self.valeur = valeur
self.couleur = couleur
def compare(self, other):
"""comparaison entre deux cartes"""
if self.valeur > other.valeur:
return 1
elif self.valeur < other.valeur:
return -1
return 0
def __repr__(self):
"""affichage de la carte"""
if self.valeur <= 10:
tmp = str(self.valeur)
else:
tmp = ["Valet","Dame","Roi"][self.valeur-11]
return tmp + " de " + self.couleur
class Jeux:
"""classe d'un jeu"""
def __init__(self, nb_cartes):
"""initialisation du jeu"""
self.paquet = []
self.nb_cartes = nb_cartes
couleurs = ["Coeur", "Carreaux", "Trèfle", "Pique"]
if self.nb_cartes == 32:
valeurs = [1, 7, 8, 9, 10, 11, 12, 13]
else:
valeurs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
if self.nb_cartes > 52:
raise ValueError("Nombre de cartes invalide")
for couleur in couleurs:
for valeur in valeurs:
self.paquet.append(Carte(valeur, couleur))
shuffle(self.paquet)
if self.nb_cartes != 32 and self.nb_cartes != 52:
for i in range(52 - self.nb_cartes):
self.paquet.pop()
print(self.paquet)
print(len(self.paquet))
def distribue(self):
"""distribution des cartes"""
f1 = File()
f2 = File()
for i in range(self.nb_cartes//2):
f1.enfiler(self.paquet.pop())
f2.enfiler(self.paquet.pop())
return f1, f2
#une fonction utile
def vider_dans(mise_1, mise_2,paquet_joueur):
"""ajoute les cartes des mises dans le paquet du joueur (et supprime les mises)"""
while not mise_1.est_vide():
paquet_joueur.enfiler(mise_1.depiler())
while not mise_2.est_vide():
paquet_joueur.enfiler(mise_2.depiler())
def main():
"""fonction principale"""
jeu = Jeux(6)
(paquet_joueur1, paquet_joueur2) = jeu.distribue()
mise_joueur1 = Pile()
mise_joueur2 = Pile()
compteur_tours = 0
while not paquet_joueur1.est_vide() and not paquet_joueur2.est_vide():
print("joueur1",paquet_joueur1)
print("joueur2",paquet_joueur2)
if mise_joueur1.est_vide() or mise_joueur1.est_vide():
mise_joueur1.empiler(paquet_joueur1.defiler())
mise_joueur2.empiler(paquet_joueur2.defiler())
if mise_joueur1.sommet().compare(mise_joueur2.sommet()) == 1:
vider_dans(mise_joueur1, mise_joueur2, paquet_joueur1)
elif mise_joueur1.sommet().compare(mise_joueur2.sommet()) == -1:
vider_dans(mise_joueur1, mise_joueur2, paquet_joueur2)
else:
if paquet_joueur1.taille() <= 1:
print("joueur1 a perdu, joueur2 a gagné")
return
elif paquet_joueur2.taille() <= 1:
print("joueur2 a perdu, joueur1 a gagné")
return
for i in range(2):
mise_joueur1.empiler(paquet_joueur1.defiler())
mise_joueur2.empiler(paquet_joueur2.defiler())
compteur_tours += 1
if compteur_tours == 200:
print("aaaaaaaaaa c'est long")
return
if paquet_joueur1.est_vide():
print("joueur1 a perdu, joueur2 a gagné")
elif paquet_joueur2.est_vide():
print("joueur2 a perdu, joueur1 a gagné")
if __name__ == "__main__":
main()
Loading…
Cancel
Save