diff --git a/Pile.py b/Pile.py new file mode 100644 index 0000000..3f198b5 --- /dev/null +++ b/Pile.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from listeChaine import ListeChaine + +class Pile_lst: + """Implémentation d'une pile par une liste.""" + def __init__(self): + """Crée une pile vide.""" + self.__pile = [] + + def est_vide(self): + """Indique si la pile est vide.""" + return self.__pile == [] + + def empiler(self, valeur): + """Empile la valeur.""" + self.__pile.append(valeur) + + def depiler(self): + """Dépile le sommet de la pile et le renvoie.""" + return self.__pile.pop() + + def taille(self): + """Renvoie la taille de la pile.""" + return len(self.__pile) + + def sommet(self): + """Renvoie le sommet de la pile (sans le dépiler).""" + return self.__pile[-1] + + def __str__(self): + s = "|" + for val in self.__pile: + s = str(val) + "->" + s + return s + + +class Pile_chaine: + """Implémentation d'une pile par une liste chaînée.""" + def __init__(self): + """Crée une pile vide.""" + self.__pile = ListeChaine() + self.__taille = 0 + + def est_vide(self): + """Indique si la pile est vide.""" + return self.__taille == 0 + + def empiler(self, valeur): + """Empile la valeur.""" + self.__pile.ajoute(valeur) + self.__taille += 1 + + def depiler(self): + """Dépile le sommet de la pile et le renvoie.""" + if self.est_vide(): + raise IndexError("Impossible de dépiler une pile vide.") + valeur = self.__pile.tete() + self.__pile = self.__pile.queue() + self.__taille -= 1 + return valeur + + def taille(self): + """Renvoie la taille de la pile.""" + return self.__taille + + def sommet(self): + """Renvoie le sommet de la pile (sans le dépiler).""" + if self.est_vide(): + raise IndexError("Une pile vide n'a pas de sommet.") + return self.__pile.tete() + + def __str__(self): + return str(self.__pile) + "->|" + + +if __name__ == "__main__": + p = Pile_lst() + print(p.est_vide()) + p.empiler('A') + p.empiler('B') + p.empiler('C') + print(p.est_vide()) + print(p.sommet()) + print(p) + print(p.taille()) + print(p.depiler()) + print(p.depiler()) + print(p.depiler()) + print(p.est_vide()) diff --git a/bataille.py b/bataille.py index 0ed006f..9175ebc 100644 --- a/bataille.py +++ b/bataille.py @@ -1,4 +1,4 @@ -import File_lst from File +from File_lst import File from random import * @@ -13,18 +13,19 @@ class Carte: elif self.valeur < other: return -1 else: - return 0; + return 0 class Jeux: def __init__(self, paquet, nbcartes): self.paquet = paquet class Joueur: - def __init__(self, paquet_joueur, nom): - self.paquet_joueur = paquet_joueur + def __init__(self, paquet_j, nom): + self.paquet_j = paquet_j self.nom = nom - def tire_carte(self, carte): - self.derniere_carte = carte + def tire_carte(self): + self.derniere_carte = self.paquet_j.defiler() + return self.derniere_carte \ No newline at end of file diff --git a/main.py b/main.py index d1b42be..c51f6dd 100644 --- a/main.py +++ b/main.py @@ -1,13 +1,14 @@ -import bataille.py +from bataille import * def bataille(): tour = 1 jeux = Jeux() carte_j1, carte_j2 = jeux.depiler() - while not carte_j1.est_vide() and not carte_j2.est_vide(): - if tour == 1: - tour = 2 - valeur_carte_j1 = carte_j1.depiler() - valeur_carte_j2 = carte_j2.depiler() - carte_j1.compare(carte_j2) + nom = str(input("Entrez votre nom")) + j1 = Joueur(carte_j1, nom) + j2 = Joueur(carte_j2, "Bot") + while not j1.paquet_j.est_vide() and not j2.paquet_j.est_vide(): + valeur_carte_j1 = tire_carte() + valeur_carte_j2 = tire_carte() + carte_j1.compare(carte_j2) \ No newline at end of file