Browse Source

import pile

master
Mattheo 2 years ago
parent
commit
7573752e7b
  1. 91
      Pile.py
  2. 13
      bataille.py
  3. 15
      main.py

91
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())

13
bataille.py

@ -1,4 +1,4 @@
import File_lst from File from File_lst import File
from random import * from random import *
@ -13,18 +13,19 @@ class Carte:
elif self.valeur < other: elif self.valeur < other:
return -1 return -1
else: else:
return 0; return 0
class Jeux: class Jeux:
def __init__(self, paquet, nbcartes): def __init__(self, paquet, nbcartes):
self.paquet = paquet self.paquet = paquet
class Joueur: class Joueur:
def __init__(self, paquet_joueur, nom): def __init__(self, paquet_j, nom):
self.paquet_joueur = paquet_joueur self.paquet_j = paquet_j
self.nom = nom self.nom = nom
def tire_carte(self, carte): def tire_carte(self):
self.derniere_carte = carte self.derniere_carte = self.paquet_j.defiler()
return self.derniere_carte

15
main.py

@ -1,13 +1,14 @@
import bataille.py from bataille import *
def bataille(): def bataille():
tour = 1 tour = 1
jeux = Jeux() jeux = Jeux()
carte_j1, carte_j2 = jeux.depiler() carte_j1, carte_j2 = jeux.depiler()
while not carte_j1.est_vide() and not carte_j2.est_vide(): nom = str(input("Entrez votre nom"))
if tour == 1: j1 = Joueur(carte_j1, nom)
tour = 2 j2 = Joueur(carte_j2, "Bot")
valeur_carte_j1 = carte_j1.depiler() while not j1.paquet_j.est_vide() and not j2.paquet_j.est_vide():
valeur_carte_j2 = carte_j2.depiler() valeur_carte_j1 = tire_carte()
carte_j1.compare(carte_j2) valeur_carte_j2 = tire_carte()
carte_j1.compare(carte_j2)
Loading…
Cancel
Save