Pour mon exercice de NSI je doit faire le fameux jeu du NIM sur python. Je l'ai réussi (hormis un petit bug de doublure de la fonction demande1() et demande2() lorsque l'utilisateur se trompait). Malheureusement, ma professeur veut absolument que je baisse la commande "global" de mon programme mais je ne sais pas comment y arriver sans... J'ai cherché pendant plusieurs heures mais je n'ai pas trouvé de moyen de remplacer cette commande pour que les variables évolue au fil du programme. Pourrais vous m'aider s'il vous plaît? Je doit rendre ce devoir pour demain.

Merci d'avance!

Voici le programme:
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
 
#création de la fonction qui demande les pseudo des joueurs
 
def players():
    global player1
    global player2
    player1=str(input("Joueur 1, entrez votre pseudo : "))
    player2=str(input("Joueur 2, entrez votre pseudo : "))
    print("Bienvenue", player1, "et", player2)
 
#création de la fonction qui afffiche en début de partie les allumettes en fonction du nombre choisi par les joueurs
 
def allumettesDebut():
    global nrAllumettes
    nrAllumettes=int(input("Combien d'alllumettes souhaitez-vous integrer dans le jeu? "))
    global allumettesOn
    global allumettesOff
    allumettesOn=(" | ")
    allumettesOff=(" . ")
    print(nrAllumettes*allumettesOn)
 
#création de la fontion qui demande de faire le choix pour le nombre d'allumettes qu'on souhaite extraire et le vérifie si il est correct (entre 1 et 3) puis affiche la representation des allumettes
 
 #pour le joueur 1:
def demande1():
    global player1
    global choix1
    global choix2
    global nrAllumettes
    global score1
    global score2
    score1=0
    score2=0
    print(player1, " :")
    if nrAllumettes==2:
        print("Nombre d'allumettes à enlever (au maximum 1): ")
        choix1=int(input())
        if choix1>1:
            print("valeur entrée, erroné!")
            demande1()
        if choix1<1:
            print("valeur entrée, erroné!")
            demande1()
    if nrAllumettes==3:
        print("Nombre d'allumettes à enlever (au maximum 2): ")
        choix1=int(input())
        if choix1>2:
            print("valeur entrée, erroné!")
            demande1()
        if choix1<1:
            print("valeur entrée, erroné!")
            demande1()
    else:
        print("Nombre d'allumettes à enlever (au maximum 3): ")
        choix1=int(input())
        if choix1>3:
            print("valeur entrée, erroné!")
            demande1()
        if choix1<1:
            print("valeur entrée, erroné!")
            demande1()
    nrAllumettes=nrAllumettes-choix1
    print(nrAllumettes*allumettesOn, choix1*allumettesOff, choix2*allumettesOff)
    print("Il reste", nrAllumettes, "allumettes")
#consigne pour l'arret du jeu
    if nrAllumettes==int(1):
        print(player2, "a perdu...")
        score1=score1+1
        print("SCORE : ", player1, ":", score1, "   ", player2, ":", score2)
        FIN()
 
 
 #pour le joueur 2:
def demande2():
    global player2
    global choix1
    global choix2
    global nrAllumettes
    global score2
    global score1
    score1=0
    score2=0
    print(player2, " :")
    if nrAllumettes==2:
        print("Nombre d'allumettes à enlever (au maximum 1): ")
        choix2=int(input())
        if choix2>1:
            print("valeur entrée, erroné!")
            demande2()
        if choix2<1:
            print("valeur entrée, erroné!")
            demande2()
    if nrAllumettes==3:
        print("Nombre d'allumettes à enlever (au maximum 2): ")
        choix2=int(input())
        if choix2>2:
            print("valeur entrée, erroné!")
            demande2()
        if choix2<1:
            print("valeur entrée, erroné!")
            demande2()
    else:
        print("Nombre d'allumettes à enlever (au maximum 3): ")
        choix2=int(input())
        if choix2>3:
            print("valeur entrée, erroné!")
            demande2()
        if choix2<1:
            print("valeur entrée, erroné!")
            demande2()
    nrAllumettes=nrAllumettes-choix2
    print(nrAllumettes*allumettesOn, choix2*allumettesOff, choix1*allumettesOff)
#consigne pour l'arret du jeu
    if nrAllumettes>1:
        print("Il reste", nrAllumettes, "allumettes")
    elif nrAllumettes==1:
        print(player1, "a perdu...")
        score2=score2+1
        print("SCORE : ", player1, ":", score1, "   ", player2, ":", score2)
        FIN()
 
#création fontion pour arret du jeu
def FIN():
    global reponse
    reponse=str(input("Souhaitez vous recommencer la partie? Y/N :"))
    if reponse==str(Y):
        jeuNim()
    else:
        print("fin du jeu")
 
 
 
 
#mise en place du jeu proprement dit avec toutes le fontion integrés:
 
def jeuNim():
    global player1
    global player2
    global allumettesOn
    global allumettesOff
    global choix1
    choix1=0
    global choix2
    choix2=0
    global nrAllumettes
    nrAllumettes=0
    global score1
    global score2
    global reponse
    response=("")
    players()
    allumettesDebut()
    while nrAllumettes!=1:
        demande1()
        demande2()
    FIN()