Browse Source

class jeu

master
lisa 2 years ago
parent
commit
7562af3a22
  1. 114
      File.py
  2. 56
      main.py

114
File.py

@ -0,0 +1,114 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
class File_lst:
"""Implémentation d'une file par une liste."""
def __init__(self):
"""Crée une file vide."""
self.__file = []
def est_vide(self):
"""Indique si la file est vide."""
return self.__file == []
def enfiler(self, valeur):
"""Enfile l'élément valeur."""
self.__file.append(valeur)
def defiler(self):
"""Défile la tête de la file et la renvoie."""
return self.__file.pop(0)
def taille(self):
"""Renvoie la taille de la file."""
return len(self.__file)
def tete(self):
"""Renvoie la tête de la file (sans la défiler)."""
return self.__file[0]
def __str__(self):
s = "tete->"
for val in self.__file:
s += str(val) + "->"
return s + "queue"
class Maillon:
"""Un maillon d'une liste doublement chaînée."""
def __init__(self, precedent, valeur, suivant):
self.valeur = valeur
self.precedent = precedent
self.suivant = suivant
def __str__(self):
return str(self.valeur)
class File_chaine:
"""Implémentation d'une file par une liste doublement chaînée."""
def __init__(self):
"""Crée une file vide."""
self.__debut = self.__fin = None
self.__taille = 0
def est_vide(self):
"""Indique si la file est vide."""
return self.__taille == 0
def enfiler(self, valeur):
"""Enfile l'élément valeur."""
maillon = Maillon(self.__fin, valeur, None)
if self.est_vide():
self.__debut = self.__fin = maillon
else:
self.__fin.suivant = maillon
self.__fin = maillon
self.__taille += 1
def defiler(self):
"""Défile la tête de la file et la renvoie."""
if self.est_vide():
raise IndexError("Impossible de défiler une file vide.")
valeur = self.__debut.valeur
self.__taille -= 1
if self.est_vide():
self.__debut = self.__fin = None
else:
self.__debut = self.__debut.suivant
self.__debut.precedent = None
return valeur
def taille(self):
"""Renvoie la taille de la file."""
return self.__taille
def tete(self):
"""Renvoie la tête de la file (sans la défiler)."""
if self.est_vide():
raise IndexError("Une file vide n'a pas de tête.")
return self.__debut.valeur
def __str__(self):
s = "tete->"
maillon = self.__debut
while maillon is not None:
s += str(maillon) + "->"
maillon = maillon.suivant
return s + "queue"
if __name__ == "__main__":
f = File_lst()
print(f.est_vide())
f.enfiler('A')
f.enfiler('B')
f.enfiler('C')
print(f.est_vide())
print(f.tete())
print(f)
print(f.taille())
print(f.defiler())
print(f.defiler())
print(f.defiler())
print(f.est_vide())

56
main.py

@ -1,3 +1,4 @@
from File import File_chaine
class Carte:
def __init__(self,valeur, couleur):
self.valeur = valeur
@ -11,4 +12,57 @@ class Carte:
return -1
elif self.valeur == self.other :
return 0
return None
return None
class Jeux:
def __init__(self, nb):
paquet = []
nb = len(self.paquet)
if nb == 32 :
nbcarte = nb
elif nb == 54 :
nbcarte = nb
else :
raise ValueError("Saissisez 32 ou 54 cartes")
for i in range(nbcarte):
carte = Carte()
paquet = []
def distribute(self, joueur):
for i in range(nbcarte):
mcarte1 = paquet - 1 #enlever moitie val
mcarte2 = paquet # le reste du paquet
if joueur == j1 :
return File_chaine(mcarte1)
elif joueur == j2 :
return File_chaine(mcarte2)
def jeu(self):
j1 = distribute(1)
j2 = distribute(2)
while not j1.estvide() or j2.estvide() :
j1tete = j1.tete()
j2tete = j2.tete()
if j1tete.valeur() > j2tete.valeur() :
j1.enfiler(j1tete)
j1.enfiler(j2tete)
elif j1tete.valeur() < j2tete.valeur() :
j2.enfiler(j1tete)
j2.enfiler(j2tete)
elif j1tete.valeur() == j2tete.valeur() :
j1.depiler()
j2.depiler()
if j1.estvide() == True :
# j1 a perdu
else:
# j2 a perdu
Loading…
Cancel
Save