Browse Source

ajout des fichier finaux

master
Laura 1 month ago
commit
342ac4f44e
  1. BIN
      bataille.pdf
  2. 19
      bataille/Carte.py
  3. 23
      bataille/Jeux.py
  4. 143
      gui/gui.py
  5. BIN
      gui/ressources/10-carreau.png
  6. BIN
      gui/ressources/10-coeur.png
  7. BIN
      gui/ressources/10-pique.png
  8. BIN
      gui/ressources/10-trefle.png
  9. BIN
      gui/ressources/11-carreau.png
  10. BIN
      gui/ressources/11-coeur.png
  11. BIN
      gui/ressources/11-pique.png
  12. BIN
      gui/ressources/11-trefle.png
  13. BIN
      gui/ressources/12-carreau.png
  14. BIN
      gui/ressources/12-coeur.png
  15. BIN
      gui/ressources/12-pique.png
  16. BIN
      gui/ressources/12-trefle.png
  17. BIN
      gui/ressources/13-carreau.png
  18. BIN
      gui/ressources/13-coeur.png
  19. BIN
      gui/ressources/13-pique.png
  20. BIN
      gui/ressources/13-trefle.png
  21. BIN
      gui/ressources/14-carreau.png
  22. BIN
      gui/ressources/14-coeur.png
  23. BIN
      gui/ressources/14-pique.png
  24. BIN
      gui/ressources/14-trefle.png
  25. BIN
      gui/ressources/2-carreau.png
  26. BIN
      gui/ressources/2-coeur.png
  27. BIN
      gui/ressources/2-pique.png
  28. BIN
      gui/ressources/2-trefle.png
  29. BIN
      gui/ressources/3-carreau.png
  30. BIN
      gui/ressources/3-coeur.png
  31. BIN
      gui/ressources/3-pique.png
  32. BIN
      gui/ressources/3-trefle.png
  33. BIN
      gui/ressources/4-carreau.png
  34. BIN
      gui/ressources/4-coeur.png
  35. BIN
      gui/ressources/4-pique.png
  36. BIN
      gui/ressources/4-trefle.png
  37. BIN
      gui/ressources/5-carreau.png
  38. BIN
      gui/ressources/5-coeur.png
  39. BIN
      gui/ressources/5-pique.png
  40. BIN
      gui/ressources/5-trefle.png
  41. BIN
      gui/ressources/6-carreau.png
  42. BIN
      gui/ressources/6-coeur.png
  43. BIN
      gui/ressources/6-pique.png
  44. BIN
      gui/ressources/6-trefle.png
  45. BIN
      gui/ressources/7-carreau.png
  46. BIN
      gui/ressources/7-coeur.png
  47. BIN
      gui/ressources/7-pique.png
  48. BIN
      gui/ressources/7-trefle.png
  49. BIN
      gui/ressources/8-carreau.png
  50. BIN
      gui/ressources/8-coeur.png
  51. BIN
      gui/ressources/8-pique.png
  52. BIN
      gui/ressources/8-trefle.png
  53. BIN
      gui/ressources/9-carreau.png
  54. BIN
      gui/ressources/9-coeur.png
  55. BIN
      gui/ressources/9-pique.png
  56. BIN
      gui/ressources/9-trefle.png
  57. BIN
      gui/ressources/dos-bleu.png
  58. BIN
      gui/ressources/joker-noir.png
  59. BIN
      gui/ressources/joker-rouge.png
  60. BIN
      gui/ressources/tapis.png
  61. 7
      main.py
  62. 114
      structure/File.py
  63. 91
      structure/Pile.py
  64. 111
      structure/listeChaine.py

BIN
bataille.pdf

Binary file not shown.

19
bataille/Carte.py

@ -0,0 +1,19 @@
class Carte:
"""Classe"""
def __init__(self, valeur, couleur):
'''Constructeur de la classe Carte'''
self.valeur = valeur
self.couleur = couleur
def compare(self, other):
'''Comparaison de deux cartes'''
if self.valeur > other.valeur:
return 1
if self.valeur < other.valeur:
return -1
else:
return 0
def __str__(self):
'''Renvoie une chaine de caractères représentant la carte'''
return str(self.valeur) + " de " + self.couleur

23
bataille/Jeux.py

@ -0,0 +1,23 @@
from bataille.Carte import Carte
from random import shuffle
class Jeux:
def __init__(self):
"""Constructeur de la classe Jeux"""
couleurs = ["carreau", "coeur", "pique", "trefle"]
valeurs = list(range(2, 15)) # génère une liste de 2 à 14
self.paquet = [Carte(valeur, couleur) for valeur in valeurs for couleur in couleurs]
def distribue(self, File):
"""Distribution des cartes"""
f1 = File()
f2 = File()
shuffle(self.paquet)
for i, carte in enumerate(self.paquet):
if i % 2 == 0:
f1.enfiler(carte)
else:
f2.enfiler(carte)
return f1, f2

143
gui/gui.py

@ -0,0 +1,143 @@
import tkinter as tk
from tkinter import messagebox
from PIL import Image, ImageTk
from bataille.Jeux import Jeux
from structure.File import File_lst
class BatailleGUI:
"""Interface graphique pour le jeu de bataille"""
def __init__(self, root):
"""Constructeur de la classe BatailleGUI"""
self.root = root
self.root.title("Jeu de Bataille")
# Set background image
self.bg_image = Image.open("gui/ressources/tapis.png")
self.bg_image = self.bg_image.resize((1000, 700))
self.bg_photo = ImageTk.PhotoImage(self.bg_image)
self.bg_label = tk.Label(root, image=self.bg_photo)
self.bg_label.place(relwidth=1, relheight=1)
self.jeux = Jeux()
self.f1, self.f2 = self.jeux.distribue(File_lst)
self.total_cartes_label = tk.Label(root, text=f"Total cartes: {len(self.jeux.paquet)}", bg="green", fg="white")
self.total_cartes_label.grid(row=0, column=0, columnspan=3)
self.canvas_joueur1 = tk.Canvas(root, width=200, height=300, bg="green")
self.canvas_joueur1.grid(row=2, column=0, padx=20, pady=20)
self.canvas_joueur2 = tk.Canvas(root, width=200, height=300, bg="green")
self.canvas_joueur2.grid(row=2, column=2, padx=20, pady=20)
self.label_joueur1 = tk.Label(root, text="Joueur 1", bg="green", fg="white")
self.label_joueur1.grid(row=3, column=0)
self.label_joueur2 = tk.Label(root, text="Joueur 2", bg="green", fg="white")
self.label_joueur2.grid(row=3, column=2)
self.bouton_tour = tk.Button(root, text="Jouer un tour", command=self.jouer_tour)
self.bouton_tour.grid(row=4, column=1)
self.bouton_restart = tk.Button(root, text="Redémarrer", command=self.restart_game)
self.bouton_restart.grid(row=5, column=1)
self.bouton_auto = tk.Button(root, text="Défilement auto", command=self.auto_play)
self.bouton_auto.grid(row=6, column=0)
self.bouton_quit_auto = tk.Button(root, text="Quitter auto play", command=self.quit_auto_play)
self.bouton_quit_auto.grid(row=6, column=2)
self.bouton_quit = tk.Button(root, text="Quitter", command=root.quit)
self.bouton_quit.grid(row=7, column=1)
self.auto_playing = False
self.update_cartes()
def update_cartes(self):
"""Met à jour les cartes des joueurs"""
self.label_joueur1.config(text=f"Joueur 1: {self.f1.taille()} cartes")
self.label_joueur2.config(text=f"Joueur 2: {self.f2.taille()} cartes")
if not self.f1.est_vide():
carte1 = self.f1.tete()
img1 = f"gui/ressources/{carte1.valeur}-{carte1.couleur}.png"
image1 = Image.open(img1)
image1 = image1.resize((200, 300))
self.photo1 = ImageTk.PhotoImage(image1)
self.canvas_joueur1.create_image(0, 0, anchor=tk.NW, image=self.photo1)
if not self.f2.est_vide():
carte2 = self.f2.tete()
img2 = f"gui/ressources/{carte2.valeur}-{carte2.couleur}.png"
image2 = Image.open(img2)
image2 = image2.resize((200, 300))
self.photo2 = ImageTk.PhotoImage(image2)
self.canvas_joueur2.create_image(0, 0, anchor=tk.NW, image=self.photo2)
def jouer_tour(self):
"""Joue un tour de jeu"""
if self.f1.est_vide() or self.f2.est_vide():
if self.f1.taille() > self.f2.taille():
messagebox.showinfo("Fin de la partie", "Le joueur 1 a gagné!")
else:
messagebox.showinfo("Fin de la partie", "Le joueur 2 a gagné!")
self.restart_game()
self.auto_playing = False
return
cartes_jouees = []
while True:
if self.f1.est_vide() or self.f2.est_vide():
if self.f1.taille() > self.f2.taille():
messagebox.showinfo("Fin de la partie", "Le joueur 1 a gagné!")
else:
messagebox.showinfo("Fin de la partie", "Le joueur 2 a gagné!")
self.restart_game()
self.auto_playing = False
return
carte1 = self.f1.defiler()
carte2 = self.f2.defiler()
cartes_jouees.extend([carte1, carte2])
if carte1.valeur > carte2.valeur:
# Ajoutez chaque carte une par une
for carte in cartes_jouees:
self.f1.enfiler(carte)
break
elif carte2.valeur > carte1.valeur:
# Ajoutez chaque carte une par une
for carte in cartes_jouees:
self.f2.enfiler(carte)
break
else:
if self.f1.taille() < 1 or self.f2.taille() < 1:
messagebox.showinfo("Fin de la partie", "Un joueur n'a pas assez de cartes pour continuer!")
return
cartes_jouees.extend([self.f1.defiler(), self.f2.defiler()])
self.update_cartes()
def restart_game(self):
"""Redémarre le jeu"""
self.jeux = Jeux()
self.f1, self.f2 = self.jeux.distribue(File_lst)
self.update_cartes()
def auto_play(self):
"""Défilement automatique"""
self.auto_playing = True
while not self.f1.est_vide() and not self.f2.est_vide() and self.auto_playing:
self.jouer_tour()
self.root.update()
self.root.after(300)
def quit_auto_play(self):
"""Quitter le défilement automatique"""
self.auto_playing = False

BIN
gui/ressources/10-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

BIN
gui/ressources/10-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
gui/ressources/10-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
gui/ressources/10-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
gui/ressources/11-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
gui/ressources/11-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
gui/ressources/11-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
gui/ressources/11-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
gui/ressources/12-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
gui/ressources/12-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
gui/ressources/12-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
gui/ressources/12-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
gui/ressources/13-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
gui/ressources/13-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
gui/ressources/13-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
gui/ressources/13-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
gui/ressources/14-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
gui/ressources/14-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
gui/ressources/14-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
gui/ressources/14-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
gui/ressources/2-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
gui/ressources/2-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
gui/ressources/2-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
gui/ressources/2-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
gui/ressources/3-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
gui/ressources/3-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
gui/ressources/3-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
gui/ressources/3-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
gui/ressources/4-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
gui/ressources/4-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
gui/ressources/4-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
gui/ressources/4-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
gui/ressources/5-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
gui/ressources/5-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
gui/ressources/5-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
gui/ressources/5-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
gui/ressources/6-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
gui/ressources/6-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
gui/ressources/6-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
gui/ressources/6-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
gui/ressources/7-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
gui/ressources/7-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
gui/ressources/7-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
gui/ressources/7-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
gui/ressources/8-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
gui/ressources/8-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
gui/ressources/8-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
gui/ressources/8-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
gui/ressources/9-carreau.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
gui/ressources/9-coeur.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
gui/ressources/9-pique.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
gui/ressources/9-trefle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
gui/ressources/dos-bleu.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
gui/ressources/joker-noir.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
gui/ressources/joker-rouge.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
gui/ressources/tapis.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

7
main.py

@ -0,0 +1,7 @@
import tkinter as tk
from gui.gui import BatailleGUI
if __name__ == "__main__":
root = tk.Tk()
app = BatailleGUI(root)
root.mainloop()

114
structure/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())

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

111
structure/listeChaine.py

@ -0,0 +1,111 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 22 20:44:35 2020
@author: manu
"""
class Maillon:
"""Un maillon d'une liste chaînée."""
def __init__(self, valeur, suivant):
self.valeur = valeur
self.suivant = suivant
def __str__(self):
"""Renvoie une chane de caractères représentant le maillon."""
return str(self.valeur)
class ListeChaine:
"""Une liste chaînée."""
def __init__(self, tete=None):
"""Crée une liste vide, ou une liste dont la tete (un maillon)
est donnée."""
self.__tete = tete
def est_vide(self):
"""Indique si la liste est vide."""
return self.__tete is None
def tete(self):
"""Renvoie la valeur du premier élément de la liste."""
if self.est_vide():
raise IndexError("La liste vide n'a pas de tête")
return self.__tete.valeur
def queue(self):
"""Renvoie la queue de la liste."""
if self.est_vide():
raise IndexError("La liste vide n'a pas de queue")
return ListeChaine(self.__tete.suivant)
def ajoute(self, valeur):
"""ajoute `valeur` en tête de la liste."""
self.__tete = Maillon(valeur, self.__tete)
def __str__(self):
"""Renvoie une chaîne de caractères représentant la liste."""
maillon = self.__tete
s = ''
while maillon is not None:
s = s + str(maillon.valeur)
maillon = maillon.suivant
if maillon is not None:
s += '->'
return s
def __len__(self):
"""Renvoie la longueur de la liste."""
maillon = self.__tete
long = 0
while maillon is not None:
long = long + 1
maillon = maillon.suivant
return long
def __getitem__(self, n):
"""Renvoie l'élément d'indice n de la liste."""
maillon = self.__tete
i = 0
while i < n and maillon is not None:
i = i + 1
maillon = maillon.suivant
if maillon is None or n < 0:
raise IndexError("Indice non valide")
return maillon.valeur
def __add__(self, other):
"""Renvoie la liste correspondant à la concaténation des 2 listes."""
if self.est_vide():
return other
v = self.tete()
q = self.queue()
return ListeChaine(Maillon(v, (q + other).__tete))
def reverse(self):
"""Renvoie une liste correspondant à la liste renversée."""
res = ListeChaine()
maillon = self.__tete
while maillon is not None:
res.ajoute(maillon.valeur)
maillon = maillon.suivant
return res
if __name__ == "__main__":
lst = ListeChaine()
print(lst.est_vide())
lst.ajoute(306)
lst.ajoute(42)
lst.ajoute(205)
print(lst)
print(lst.est_vide())
print(lst[0])
print(lst[1])
print(len(lst))
lst2 = ListeChaine()
lst2.ajoute(18)
lst2.ajoute(45)
print(lst + lst2)
Loading…
Cancel
Save