Bonjour,
Je débute en programmation python et j'essaye de faire un jeu simple de bataille (sans graphique, juste le script).
J'ai une erreur dans mon script car il y a énormément de partie sans qu'un gagnant ne ressorte.
Autre chose, lorsqu'il y a un execo, c'est forcement avec la carte 7, ce que je ne comprends pas.
Pouvez vous m'aider ?
J'ai mis pas mal de fonction print et de commentaires pour essayer de faciliter la lecture.
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 import random # fonction input a venir joueur1 = "Alphonse" joueur2 = "Julien" jeu_de_carte = [] # def du nombre de carte def nombre_jeu_carte(y): z = 0 while y*4 > z: for x in range(1, 14): jeu_de_carte.append(x) z +=1 nombre_jeu_carte(1) # je mélange les cartes random.shuffle(jeu_de_carte) jeu_joueur1 = [] jeu_joueur2 = [] nombre_carte_joueur1 = [] nombre_carte_joueur2 = [] nombre_carte_dock = [] #distribution du jeu while len(jeu_de_carte) != 0: x = random.choice(jeu_de_carte) jeu_joueur1.append(x) jeu_de_carte.remove(x) y = random.choice(jeu_de_carte) jeu_joueur2.append(y) jeu_de_carte.remove(y) del jeu_de_carte # je supprime la liste que est devenu vide # le dock correspond aux cartes du milieu que les joueurs vont comparer pour savoir qui gagne dock = [] print(jeu_joueur1) print(jeu_joueur2) #compteur tour = 0 #boucle pour jouer while len(jeu_joueur1) != 0 or len(jeu_joueur2) != 0: tour += 1 nombre_carte_joueur1.append(len(jeu_joueur1)) nombre_carte_joueur2.append(len(jeu_joueur2)) nombre_carte_dock.append((len(dock))) print(f"nombre de carte mini de {joueur1} sont {min(nombre_carte_joueur1)}") print(f"nombre de carte mini de {joueur2} sont {min(nombre_carte_joueur2)}") print(f"nombre de carte max du dock sont {max(nombre_carte_dock)}") print(f"Tour n°{tour}") dock.append(jeu_joueur1[0]) dock.append(jeu_joueur2[0]) print(f"Les cartes du milieu sont {dock}") print(f"nombre de carte dans le jeu : {len(jeu_joueur1) + len(jeu_joueur2) + len(dock)}") print(f"nombre de carte de {joueur1} = {len(jeu_joueur1)}") print(f"le jeu de {joueur1} est composé de ces cartes : \n {jeu_joueur1}") print(f"nombre de carte de {joueur2} = {len(jeu_joueur2)}") print(f"le jeu de {joueur2} est composé de ces cartes : \n {jeu_joueur2}") if jeu_joueur1[0] > jeu_joueur2[0]: print(f"{joueur1} remporte la manche car {jeu_joueur1[0]} est plus grand que {jeu_joueur2[0]}") jeu_joueur1 += dock # les cartes du milieu sont rajoutées au jeu du joueur 1 dock = [] # il n'y a plus de cartes au milieu elif jeu_joueur1[0] < jeu_joueur2[0]: print(f"{joueur2} remporte la manche car {jeu_joueur2[0]} est plus grand que {jeu_joueur1[0]}") jeu_joueur2 += dock # les cartes du milieu sont rajoutées au jeu du joueur 2 dock = [] else: print(f"execo les cartes tirées sont {jeu_joueur1[0]} et {jeu_joueur2[0]}") del jeu_joueur1[0] # on supprime du jeu de carte la carte utilisée pour la partie del jeu_joueur2[0] print("_______________________________") if len(jeu_joueur1) == 0: print(f"{joueur1} a gagné la partie en {tour} tours") if len(jeu_joueur2) == 0: print(f"{joueur2} a gagné la partie en {tour} tours")
Partager