Bonjour, j'ai un petit problème avec mon programme que voici:
En gros, "l" est un jeu de 78 cartes et je dois en distribuer 18 à chaque joueur et 6 au 5ème joueur.
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))
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!
Partager