From e98c9bf3d89a5c224439cb59329c8367f0d9963c Mon Sep 17 00:00:00 2001 From: OUEDRAGO Seyba Date: Thu, 18 Dec 2025 11:55:52 +0100 Subject: [PATCH] =?UTF-8?q?Transf=C3=A9rer=20les=20fichiers=20vers=20''?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- File.cpython-310.pyc | Bin 0 -> 3801 bytes File.py | 114 +++++++++++++++++++++++++++++++++++++++++++ projet_bataille.py | 21 ++++++-- 3 files changed, 130 insertions(+), 5 deletions(-) create mode 100644 File.cpython-310.pyc create mode 100644 File.py diff --git a/File.cpython-310.pyc b/File.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e7c472187c65dc3311559937a8309779e9f3b3a4 GIT binary patch literal 3801 zcma)8&2Jk;6yKR$uQ!hK(GSrAEi9#w8mL1-&?2fT&=#mfEz}PV5oopXOxjJIwL808 z(a61!{vqwr9QY?9@dt3+D;Ii>xb#r*dvCpooj7gRn(>>NH#6`3-q&Zz)TO$7q{!nMP9C7}*#Jj2ub5h|C0UGvAOq$W2Gm4Y?P)t9T>x7MKcJqeY?^Ap!% z72VIYpG1BqEb!Aw>a*U)!3~D)VjYWa3d7t3Pe43`p@FYkBVv?mZ4$8jh$jDM8gKngo z&%h0*Dnzz>-QGkXt4h;(<}jF9%KE63!^M44k~#$BHo>2goMIC)4#dXE8^!e`3470| zgw2M`?T(IFritRX#hy2CY+=>89mI;214ZFzBEXb*(_*+5amc7Nd*M2hgmFT0ssdBf zXc~&ZgT2m4b*jlp3fX3MWyAcKWMoEiUiP*#Ae49{NV+T5ueC?AFH+H$n?lKB)_LoZ zxL@fDWgmmw1E;m&(lr;)Zpe#g^9o`k(>rENQq!;tw-ZTj!}IpJT@ZjN2;RY^31tRH z)Wl)oi4o@;va|-%6wz_Gu7e=21;Kh(Wk_*BUJru%S=bq_RD%HdAqWfy+YHWRcQI@w zhT{ayouZCz9O)=n4S5TJk&u&l5XcjrQ~v4>ueY%@_R*##w8TgE@+=N(SM%z1%2nMs z`vm;AV}HFE4)ZdnVr02&rK2g&`R%*m)}Jv_ZL>|Hl^@Y`Guw^y>r2Ydeb_D#eH*=0 zWF^sp84h7RpXwRi)(U6l)g+4^gmKz%*g}Tlm6^=PMD0Sus1TS7XbI&vSGX|K#{5u; zS7%aljE-!egKxY`G)Xflrr0h73Wql?ncKaDJ*Cxf&1u^F0d*fzM{*U`K1I~7;n zXRtsU*vAT^)+>f)4>YBr>W4x)&2a+@M6u2;VeWNn=>Z1ZTVQP*xnn>j94@hBKt;yH zQveQQ8{%qlz&GstNKsu2nc(hvB}?-|b0J+!Cm$W)5MJ7bw#*tA}CskDnXVQ{2yafU}SAB~}3nAXuc(Cf?{nG^U>{OqFbp*Rf;!>6R8I3b;fzz-k7IELCy1TE8 z@A%FIY%R+;A_IjW6Xy8dQr?$qvRqB3%Cc@wVlzCQjmznpOj^3W586<&*lStJzQ3R) z6iyCmgeT^yf8p8Vj$c-E^ZxiLyZM?b02y+$2v<;qYu=3K)LldC^cp|_#&`jUZ*uW% zE-tqk(_Ej67$zpJ6}ec=D?Jm%X@Ne)r{PxszX$kbz<2L<6vw%Dv3O%#B4d1%FNUO3zT187+KSO5S3 literal 0 HcmV?d00001 diff --git a/File.py b/File.py new file mode 100644 index 0000000..05b51dc --- /dev/null +++ b/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()) diff --git a/projet_bataille.py b/projet_bataille.py index 21cce6c..2dfb495 100644 --- a/projet_bataille.py +++ b/projet_bataille.py @@ -15,18 +15,27 @@ class Carte: return 0 class Jeu: - def __init__(self, paquet): + def __init__(self): self.paquet = [] + def distribue(self, nombre): f1 = File() f2 = File() + for carte in range(nombre): for i in range(4): self.paquet.append(carte + 1) - shuffle(self.paquet) + + shuffle(self.paquet) + for i in range(nombre*2): + f2.enfiler(self.paquet[i]) + + for i in range(nombre*2, nombre*4): f1.enfiler(self.paquet[i]) - return f1 + + return f1, f2 + """c1 = Carte(5, "bleu") c2 = Carte(4, "vert") @@ -35,5 +44,7 @@ c4 = Carte(5, "bissap") print(c1.compare(c4))""" -jeu = Jeu(52) -print(jeu.distribue(13)) \ No newline at end of file +jeu = Jeu() +f1, f2 = jeu.distribue(13) +print ("f1 :", f1) +print ("f2 :", f2) \ No newline at end of file