Bonjour,

Je dois programmer un jeu d'allumettes, je vous rappelle le principe : Ce jeu se pratique avec un nombre impair d’allumettes. Deux joueurs retirent à tour de rôle de 1 à 3 allumettes au choix. Le joueur retirant la dernière allumette est décrété perdant. Il faut écrire écrire un programme pour jouer à ce jeu contre l’ordinateur qui lui va jouer aléatoirement.

J'ai fait ceci mais le programme plante au lancement et je ne vois pas où se trouve le ou les erreurs... si vous pouviez m'aider ce serait gentil.

Voilà le code :

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
89
90
91
92
93
94
95
96
from random import*
 
def menu(rejouer):
    fin=False
    while fin==False: 
         print("\n\n******** Menu ********")            
         print("Bienvenue dans le jeu des allumettes!")
         print("Le but du jeu est simple : Choisissez un nombre d'allumette puis decidez du nombre (entre 1 et 3) a enlever.\n A son tour, l'ordinateur en fera de meme et ainsi de suite jusqu'a ce qu'il n'y ait plus d'allumettes.\n Le perdant est celui qui retirera la derniere allumette.")
         print("(1) Jouer ")
         print("(2) Quitter le programme ")
 
         if rejouer==2:
            fin=True
 
         return rejouer 
 
 
def PartieJoueur(nbrAllumettes,nbrAlluAretirer,reponse): 
    print("/"*nbrAllumettes,end='')  
    print(" Vous jouez avec",alluaffiche,"allumettes") # Pareil
    # C'est ici qu'il faudrait saisir le nombre d'allumettes choisi par le joueur
    while 1:
        if (nbrAlluAretirer<1):
            print("Entrer un nombre SUPERIEUR ou egal a 1 ")
 
            reponse = False
        elif (nbrAlluAretirer>3):
            print("Entrer un nombre INFERIEUR ou egal 3")
 
            reponse = False
 
        if reponse == True: 
            break
 
            print("/"*alluaffiche,end='')  # Tâche ménagère, ne devrait pas être ici.
            if(alluaffiche<=1):
                print(" Vous avez gagne :D")
 
def tourOrdi(nbrAlluAretirer,alluaffiche):
    if (nbrAlluAretirer > 8):
        print(" L'ordinateur a retirer",nbrAlluAretirer,"Allumettes")
 
    elif (nbrAlluAretirer == 8):
        nbrAlluAretirer = 3
    elif (nbrAlluAretirer == 7):
        nbrAlluAretirer = 2
    elif (nbrAlluAretirer == 6):
        nbrAlluAretirer = 1
    elif (nbrAlluAretirer == 5):
        nbrAlluAretirer = 1
    elif (nbrAlluAretirer == 4):
        nbrAlluAretirer = 3
    elif (nbrAlluAretirer == 3):
        nbrAlluAretirer = 2
    elif (nbrAlluAretirer == 2):
        nbrAlluAretirer = 1
 
 
        alluaffiche=alluaffiche-nbrAlluAretirer
 
        print("/"*alluaffiche,end='')  
        print(" Il reste",alluaffiche,"allumettes")
        if(alluaffiche<=1):
             print(" Vous avez perdu :(")
 
    return alluaffiche 
 
 
#Programme principal #
rejouer=1
menu(rejouer)
rejouer=input("Quel est votre choix? : ") 
 
nbrAllumettes=int(input("Rentrer un nombre entier d'allumettes : ")) 
alluaffiche=nbrAllumettes
 
nbrAlluAretirer=int(input("Combien d'allumettes (entre 1 et 3) voulez-vous retirer? : "))
reponse = True
PartieJoueur(nbrAllumettes,nbrAlluAretirer,reponse)
nbrAlluAretirer = (int(random()*3+1))
alluaffiche=alluaffiche-nbrAlluAretirer
 
tourOrdi(nbrAlluAretirer,alluaffiche)
rejouer = True
while rejouer:
    nbrAllumettes=int(input("Rentrer un nombre entier d'allumettes : "))
    alluaffiche=nbrAllumettes
    while alluaffiche>1:
 
        print("/"*nbrAllumettes,end='')
        print(" Vous jouez avec",alluaffiche,"allumettes")
 
    rejouer = menu() 
 
# Fin du programme #
print("*** Fin ***")