Browse Source

modifs sympatiques, plus que l'interface et la fonction jeux

master
ambre_le_bg 2 weeks ago
parent
commit
430f9df54f
  1. 52
      bataille.py
  2. 186
      essaie.py

52
bataille.py

@ -1,4 +1,6 @@
import tkinter as tk # import tkinter as tk
#
# from random import randint
from File import File_lst as File from File import File_lst as File
@ -7,19 +9,52 @@ class Carte:
self.valeur = valeur self.valeur = valeur
self.couleur = couleur self.couleur = couleur
if valeur == 'as':
self.valeur == 14
if valeur == 'roi':
self.valeur == 13
if valeur == 'dame':
self.valeur == 12
if valeur == 'valet':
self.valeur == 11
if valeur == '10':
self.valeur == 10
if valeur == '9':
self.valeur == 9
if valeur == '8':
self.valeur == 8
if valeur == '7':
self.valeur == 7
couleur = "carreau","trefle", "coeur", "pique"
def compare (self,other): def compare (self,other):
if other.valeur > self.valeur: # si other est une carte avec une valeur plus grande if other.valeur > self.valeur: # si other est une carte avec une valeur plus grande
<<<<<<< HEAD
return -1 return -1
=======
return 1
>>>>>>> 0e34c5d2a482acb938aa071c89dd8dd92408e054
elif other.valeur < self.valeur: # si self est une carte avec une valeur plus grande elif other.valeur < self.valeur: # si self est une carte avec une valeur plus grande
return 1 return 1
else : # meme valeur, il y a bataille else : # meme valeur, il y a bataille
return 0 return 0
class Jeux : class Jeux :
<<<<<<< HEAD
def __init__ (self, paquet): def __init__ (self, paquet):
valeurs = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] # 11 = valet, 12 = dame, 13 = roi, 14 = as valeurs = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] # 11 = valet, 12 = dame, 13 = roi, 14 = as
couleurs = ['Coeur', 'Carreau', 'Trèfle', 'Pique'] couleurs = ['Coeur', 'Carreau', 'Trèfle', 'Pique']
self.paquet = [] self.paquet = []
=======
def __init__ (self):
for i in range 32:
c = Carte(x,y)
>>>>>>> 0e34c5d2a482acb938aa071c89dd8dd92408e054
self.valeur_paquet = int(input("voulez vous jouer avec un paquet de 32 ou de 52 cartes?")) # nombre de carte dans le paquet,à remplacer par un boutton self.valeur_paquet = int(input("voulez vous jouer avec un paquet de 32 ou de 52 cartes?")) # nombre de carte dans le paquet,à remplacer par un boutton
if self.valeur_paquet == 52: #faudra changer là aussi pour l'interface graphique if self.valeur_paquet == 52: #faudra changer là aussi pour l'interface graphique
pass pass
@ -37,6 +72,7 @@ class Jeux :
self.distribue() self.distribue()
def distribue (self) : # en sah jss pas sur de ma connerie, à tester def distribue (self) : # en sah jss pas sur de ma connerie, à tester
<<<<<<< HEAD
while self.paquet: while self.paquet:
self.joueur1.ajouter(self.paquet.pop()) self.joueur1.ajouter(self.paquet.pop())
self.joueur2.ajouter(self.paquet.pop()) self.joueur2.ajouter(self.paquet.pop())
@ -46,6 +82,18 @@ class Jeux :
carte2= self.joueur2.retirer carte2= self.joueur2.retirer
print("joueur1 fait",carte1) print("joueur1 fait",carte1)
print("joueur1 fait",carte2) print("joueur1 fait",carte2)
=======
return
# joueur1 = File()
# joueur2 = File()
# while paquet != 0 :
# joueur1.enfiler(paquet.depiller())
# joueur2.enfiler(paquet.depiller())
# return joueur1 and joueur2
>>>>>>> 0e34c5d2a482acb938aa071c89dd8dd92408e054
#pour les tests: #pour les tests:
#f=Jeux() #f=Jeux()
#print(f.paquet) #print(f.paquet)

186
essaie.py

@ -0,0 +1,186 @@
# quelque idée, qui peuvent peut-être aider, ou pas ...
import tkinter as tk
from random import randint
from Pile import Pile_lst as Pile
from File import File_lst as File
p52 = Pile() # Création d'une pile vide pour un paquet de 52 cartes
p32 = Pile() # Création d'une pile vide pour un paquet de 32 cartes
paquet_j1 = File () # paquet de carte du joueur 1
paquet_j2 = File () # paquet de carte du joueur 2
class Carte:
def __init__ (self,valeur, couleur):
self.valeur = valeur
self.couleur = couleur
def __repr__ (self): #permet de mettre "Carte(11, 1)" sous forme "Valet de cœur" (trouver sur python pas a pas)
couleurs = {1: "Cœur", 2: "Carreau", 3: "Trèfle", 4: "Pique"}
valeurs = {11: "Valet", 12: "Dame", 13: "Roi", 14: "As"}
valeur_str = valeurs.get(self.valeur, self.valeur)
couleur_str = couleurs.get(self.couleur, self.couleur)
return f"{valeur_str} de {couleur_str}"
def cartes_52 (self) : #créer les 52 cartes dans l'ordre
valeurs = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
couleurs = [1, 2, 3, 4]
for couleur in couleurs:
for valeur in valeurs:
p52.empiler(Carte(valeur, couleur)) # Empiler chaque carte
return p52
def cartes_32 (self) : #créer les 32 cartes dans l'ordre
valeurs = [7,8,9,10,11,12,13,14] # la valeur de l'as est mise a 14 pour facilité le travail
couleurs = [1,2,3,4]
for couleur in couleurs:
for valeur in valeurs:
p32.empiler(Carte(valeur, couleur)) # Empiler chaque carte
return p32
def compare (self,other):
if other.valeur > self.valeur: # si other est une carte avec une valeur plus grande
return -1
elif other.valeur < self.valeur: # si self est une carte avec une valeur plus grande
return 1
else : # même valeur, il y a bataille
return 0
paquet_j1 = File ()
paquet_j2 = File ()
class Jeux :
def __init__ (self):
self.valeur_paquet = int(input("voulez vous jouer avec un paquet de 32 ou de 52 cartes?")) # nombre de carte dans le paquet,à remplacer par un boutton
# essaie de mélange, j'ai tester avec un jeu de carte papier ça mélange vraiment
x = 3
p = Pile () # pile pour aider à mélanger
f = File () # file pour aider à mélanger
if self.valeur_paquet == 32:
for i in range(32):
for i in range (x) :
p.empiler(p32.depiler)
for i in range (x - 1) :
f.enfiler(p.depiler)
if p.taille() == 10 :
for i in range (10):
f.enfiler(p.depiler)
while p.taille() != 0 :
f.enfiler(p.depiler)
while f.taille() != 0 :
p32.empiler(f.defiler)
elif self.valeur_paquet == 52:
for i in range(52):
for i in range (x) :
p.empiler(p52.depiler)
for i in range (x - 1) :
f.enfiler(p.depiler)
if p.taille() == 10 :
for i in range (10):
f.enfiler(p.depiler)
while p.taille() != 0 :
f.enfiler(p.depiler)
while f.taille() != 0 :
p52.empiler(f.defiler)
def distribut (self): # distribut les cartes mélanger dans deux files, avec le même nombre de cartes
if self.valeur_paquet == 32: #faudra changer là aussi pour l'interface graphique
for i in range (16):
paquet_j1.enfiler(p32.depiler)
paquet_j2.enfiler(p32.depiler)
elif self.valeur_paquet == 52:
for i in range (26):
paquet_j1.enfiler(p52.depiler)
paquet_j2.enfiler(p52.depiler)
def mélange (y, p_c) : # essaie de mélange, avec y le nombre de cartes a mélanger et p_c le paquet a mélanger (une file)
x = 3
p = Pile () # pile pour aider à mélanger
f = File () # file pour aider à mélanger
for i in range(y):
for i in range (x) :
p.empiler(p_c.depiler)
for i in range (x - 1) :
f.enfiler(p.depiler)
if p.taille() == 10 :
for i in range (10) :
f.enfiler(p.depiler)
while p.taille() != 0 :
f.enfiler(p.depiler)
while f.taille() != 0 :
p_c.enfiler(f.defiler)
return p_c
def on_joue ():
while (paquet_j1.taille() != 0) or (paquet_j2.taille() != 0): # tant que les deux joueur on des cartes, on continue de jouer.
carte_j1 = paquet_j1.defiler()
carte_j2 = paquet_j2.defiler()
#on perd
if Carte.compare(carte_j1,carte_j2) == -1 :
paquet_j2.enfiler(carte_j1)
paquet_j2.enfiler(carte_j2)
#on gagne
if Carte.compare(carte_j1,carte_j2) == 1 :
paquet_j1.enfiler(carte_j1)
paquet_j1.enfiler(carte_j2)
# égalité on fait la bataille
if Carte.compare(carte_j1,carte_j2) == 0 :
p1 = Pile () # pile de bataille du joueur 1
p2 = Pile () # pile de bataille du joueur 2
p1.empiler(carte_j1)
p2.empiler(carte_j2)
p1.empiler(paquet_j1.defiler()) #cette carte ne sera visible que si la troisiéme est égale a celle de l'adversaire
p2.empiler(paquet_j1.defiler()) #cette carte ne sera visible que si la troisiéme est égale a celle de l'adversaire
carte_3b_j1 = paquet_j1.defiler() #troisième carte de la bataille
carte_3b_j2 = paquet_j2.defiler() # troisième carte de la bataille
#on perd la bataille
if Carte.compare(carte_3b_j1,carte_3b_j2) == -1 :
while p2.taille() != 0 : # si p2 est vide, alors p1 aussi
paquet_j2.enfiler(p1.depiler())
paquet_j2.enfiler(p2.depiler())
#on gagne la bataille
if Carte.compare(carte_3b_j1,carte_3b_j2) == -1 :
while p2.taille() != 0 : # si p2 est vide, alors p1 aussi
paquet_j2.enfiler(p1.depiler())
paquet_j2.enfiler(p2.depiler())
#égalité a la bataille, on regarde la carte du milieu
if Carte.compare(carte_3b_j1,carte_3b_j2) == 0 :
carte_2b_j1 = p1.depiler() #deuxième carte de la bataille
carte_2b_j2 = p2.depiler() # deuxième carte de la bataille
#on perd la bataille
if Carte.compare(carte_2b_j1,carte_2b_j2) == -1 :
paquet_j2.enfiler(p1.depiler())
paquet_j2.enfiler(p2.depiler())
paquet_j2.enfiler(carte_2b_j1)
paquet_j2.enfiler(carte_2b_j2)
paquet_j2.enfiler(carte_3b_j1)
paquet_j2.enfiler(carte_3b_j2)
#on gagne la bataille
if Carte.compare(carte_2b_j1,carte_2b_j2) == 1 :
paquet_j1.enfiler(p1.depiler())
paquet_j1.enfiler(p2.depiler())
paquet_j1.enfiler(carte_2b_j1)
paquet_j1.enfiler(carte_2b_j2)
paquet_j1.enfiler(carte_3b_j1)
paquet_j1.enfiler(carte_3b_j2)
# égalité
if Carte.compare(carte_2b_j1,carte_2b_j2) == 0 :
print("le jeu de carte doit ếtre mal mélanger, on va y remédier")
mélange(paquet_j1.taille(), paquet_j1)
mélange(paquet_j2.taille(), paquet_j2)
Loading…
Cancel
Save