我有一個問題,我使用函式在 Python 中創建了一個乘法游戲,但是當我檢查用戶是否有足夠的積分來更改級別時,積分計數器(“compteur”)不會重置為 0。我是初學者,所以它是這個錯誤很可能是愚蠢的,但我不明白...... 你可以在 Python 導師中看到這一點,但我嘗試添加“return compteur”,但這也不起作用......
這是功能代碼:
def update (compteur) : global level if compteur == 20 : level =1 print("Niveau",level-1,"terminé. Passage au niveau",level,"!") compteur = 0 return compteur
和整個代碼:
###############################################################################
# Importation de fonctions externes #
import random
###############################################################################
# Définitions locales de fonctions #
compteur=0
def calcul (max) :
'''
Cette fonction calcule une mutiplication avec des valeures aléatoires, elle
admet un seul paramètre :
- Maximum des valeures alétoires
Elle retourne le nombre saisi par l'utilisateur ainsi que le nombre calculé
par l'ordinateur.
'''
global compteur
global nb_user
global nb_result
valeur_1=random.randint(1, max)
valeur_2=random.randint(1, max)
nb_result=valeur_1*valeur_2
print(valeur_1,"*",valeur_2)
print("Debug =",nb_result,)
nb_user=int(input("Entrer votre réponse : \n"))
return nb_user
return nb_result
def verif (nb_user, nb_result) :
'''
Cette fonction vérifie si le résultat saisi par l'utilisateur est égale au
résultat attendu, elle admet donc deux paramètres :
- Nb_user
- Nb_result
Elle retourne l'indice de réussite.
'''
global compteur
if nb_user == nb_result :
compteur =1
print("Bonne réponse !")
else :
compteur-=1
print("Mauvaise réponse !")
def update (compteur) :
global level
if compteur == 20 :
level =1
print("Niveau",level-1,"terminé. Passage au niveau",level,"!")
compteur = 0
return compteur
###############################################################################
# Corps principal du programme
# Déclarations des variables
level=1
# Debut
print("Bienvenue dans le Jeu des multiplications !")
while level == 1 :
calcul(10)
print(compteur, level)
verif(nb_user, nb_result)
update(compteur)
while level == 2 :
calcul(20)
print(compteur, level)
verif(nb_user, nb_result)
update(compteur)
while level == 3 :
calcul(50)
verif(nb_user, nb_result)
update(compteur)
while level == 4 :
calcul(100)
verif(nb_user, nb_result)
update(compteur)
while level == 5 :
print("Bien joué ! Tu es venu à bout du jeu.")
預先感謝您的幫助 !
uj5u.com熱心網友回復:
每次,您update(compteur)都必須將值分配回compteur:
代替:
update(compteur)
經過:
compteur = update(compteur)
您必須縮進return compteur:
def update (compteur) :
global level
if compteur == 20 :
level =1
print("Niveau",level-1,"terminé. Passage au niveau",level,"!")
compteur = 0
return compteur # Remove one tab
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/416003.html
標籤:
