diff --git a/main.py b/main.py index 95b3d49..bfaad25 100644 --- a/main.py +++ b/main.py @@ -1,38 +1,45 @@ -from util.bataille import * -from lib.Pile import Pile_lst - -def bataille(): - '''Fonction permettant de lancer le jeu''' - jeux = Jeux() - carte_j1, carte_j2 = jeux.depiler() - nom = str(input("Entrez votre nom")) +from util.bataille import Jeux, Joueur +from lib.Pile import Pile_lst as Pile + +if __name__ == "__main__": + jeux = Jeux(32) + carte_j1, carte_j2 = jeux.distribue() + + nom = str(input("Entrez votre nom: ")) j1 = Joueur(carte_j1, nom) j2 = Joueur(carte_j2, "Bot") - p_j1 = Pile_lst() - p_j2 = Pile_lst() - while not j1.paquet_j.est_vide() and not j2.paquet_j.est_vide():#tant que les joueurs ont des cartes on continue. - p_j1.empile(j1.tire_carte()) - p_j2.empile(j2.tire_carte()) - gagne = p_j1.sommet().compare(p_j2.sommet()) - #comparaison du gagnant du duels de cartes: - if gagne == 1: + print(str(j1.paquet)) + + + pile_j1 = Pile() + pile_j2 = Pile() + + #Tant que les joueurs ont des cartes on continue + 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_j1.sommet().compare(pile_j2.sommet()) + #si la valeur de self est supérieure à la valeur de other. - j1.paquet_j.append(p_j2.depiler()) - - elif gagne == 2: + if gagne == 1: + j1.paquet.enfiler(pile_j2.depiler()) + #si la valeur de other est supérieure à la valeur de self. - j2.paquet_j.append(p_j1.depiler()) - - else: + elif gagne == 2: + j2.paquet.enfiler(pile_j1.depiler()) + #si les deux valeurs sont les mêmes, bataille ! + else: for loop in range(2): - p_j1.empile(j1.tire_carte()) - p_j2.empile(j2.tire_carte()) - - if j1.paquet_j.est_vide() and j2.paquet_j.est_vide(): - print("parti nul") - elif j1.paquet_j.est_vide(): + pile_j1.empiler(j1.tire_carte()) + pile_j2.empiler(j2.tire_carte()) + + if j1.paquet.est_vide() and j2.paquet.est_vide(): + print("Partie nulle") + elif j1.paquet.est_vide(): print("Le perdant est le joueur 1") else: print("Le perdant est le joueur 2") - + diff --git a/util/.bataille.py.swp b/util/.bataille.py.swp new file mode 100644 index 0000000..34ea959 Binary files /dev/null and b/util/.bataille.py.swp differ diff --git a/util/bataille.py b/util/bataille.py index 80da0d7..8a0c9c6 100644 --- a/util/bataille.py +++ b/util/bataille.py @@ -1,45 +1,54 @@ -from random import * +from random import randint from lib.File import File_lst as File class Carte: """ Classe représentant une carte - + Arguments: valeur: int -- Valeur allant de 2 à 14 (Valet=11, Dame=12, Roi=13, As=14) - couleur: int -- Allant de 0 à 3 (Carreau, Coeur, Pique, Trefle) + couleur: int -- Allant de 0 à 3 (0: Carreau, 1: Coeur, 2: Pique, 3: Trefle) """ + + CARREAU = 0 + COEUR = 1 + PIQUE = 2 + TREFLE = 3 + VALET = 11 + DAME = 12 + ROI = 13 + AS = 14 + def __init__(self, valeur, couleur): self.valeur = valeur self.couleur = couleur - + def compare(self, other): - if self.valeur > other: + if self.valeur > other.valeur: return 1 - elif self.valeur < other: + elif self.valeur < other.valeur: return -1 else: return 0 - - + + class Jeux: def __init__(self, nbcartes): self.paquet = File() self.couleur = File() - #Cartes 1 à 10 et 11 pour Valet, 12 pour Dame et 13 pour Roi et 14 pour As if nbcartes == 32: - for i in range(4): - crt = [7, 8, 9, 10, 11, 12, 13, 14] - couleur = [0, 1, 2, 3] - for val in range(len(crt)): - rd = randint(0, len(crt)-1) - self.paquet.enfiler(crt[rd]) - self.couleur.enfiler(couleur[i]) - crt.pop(rd) + for couleur in [Carte.CARREAU, Carte.COEUR, Carte.PIQUE, Carte.TREFLE]: + valeurs = [7, 8, 9, 10, Carte.VALET, Carte.DAME, Carte.ROI, Carte.AS] + for i in range(8): + rand = randint(0, len(valeurs)-1) + carte = Carte(valeurs.pop(rand), couleur) + self.paquet.enfiler(carte) + #self.couleur.enfiler(couleur) + #valeurs.pop(rand) else: - pq = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] - - + pq = [2, 3, 4, 5, 6, 7, 8, 9, 10, Carte.VALET, Carte.DAME, Carte.ROI, Carte.AS] + + def distribue(self): cp = self.paquet f1 = File() @@ -48,13 +57,14 @@ class Jeux: f1.enfiler(cp.defiler()) f2.enfiler(cp.defiler()) return f1, f2 - - + + class Joueur: - def __init__(self, paquet_j, nom): - self.paquet_j = paquet_j + def __init__(self, paquet, nom): + self.paquet = paquet self.nom = nom - + self.derniere_carte = None + def tire_carte(self): - self.derniere_carte = self.paquet_j.defiler() + self.derniere_carte = self.paquet.defiler() return self.derniere_carte