Bonjour, j'ai un petit problème avec mon programme que voici:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import copy
import random
def DistributionPar3(l):
****a=[]
****b=[]
****c=[]
****d=[]
****e=[]
****m=[]
****i=0
****o=copy.deepcopy(l)
****n=len(o)
****while n>=1:
********w=random.choice(o)
********e.append(w)
********del w
********k=random.choice(o)
********a.append(k)
********del k
********k=random.choice(o)
********a.append(k)
********del k
********k=random.choice(o)
********a.append(k)
********del k
********x=random.choice(o)
********b.append(x)
********del x
********x=random.choice(o)
********b.append(x)
********del x
********x=random.choice(o)
********b.append(x)
********del x
********y=random.choice(o)
********c.append(y)
********del y
********y=random.choice(o)
********c.append(y)
********del y
********y=random.choice(o)
********c.append(y)
********del y
********z=random.choice(o)
********d.append(z)
********del z
********z=random.choice(o)
********d.append(z)
********del z
********z=random.choice(o)
********d.append(z)
********del z
****print("[{} pour le joueur 1,{} pour le joueur 2,{} pour le joueur 3,{} pour le joueur 4],[{} pour le Chien]".format(a,b,c,d,e))
En gros, "l" est un jeu de 78 cartes et je dois en distribuer 18 à chaque joueur et 6 au 5ème joueur.
Les joueurs 1,2,3 et 4 sont représentés par les listes a,b,c et d et le 5ème joueur est représenté par la liste e.
Pour distribuer les cartes, je dois distribuer les cartes 3 par 3 (pour les 4 premiers joueurs) et 1 par 1 (pour le 5ème joueur) et répéter cette opération jusqu’à ce que toutes les cartes aient été distribuées (donc je devrais faire six distributions 3 par 3)

Cependant, j'ai un problème avec ma boucle (le "while n>=1") en effet, quand j'exécute le programme, elle est infinie et ne s'arrête jamais.
J'ai essayé le programme sans cette boucle et avec un "print(n)" à la fin et j'avais bien 3 cartes distribuées aux 4 premiers joueurs, une carte distribuée au joueur 5 mais la valeur de n renvoyée était de 78. Donc, les cartes distribuées n'ont pas été supprimées de la liste.

Quelqu'un saurait-il comment résoudre ce problème ?
Et y a t-il un moyen de distribuer les cartes 3 par 3 sans copier trois fois de suite les mêmes lignes de code?
Merci beaucoup !