gpt4 book ai didi

python 猜谜游戏练习

转载 作者:行者123 更新时间:2023-12-01 03:17:32 25 4
gpt4 key购买 nike

我目前正在 learnpython.org 上进行 Python 练习:我在粗体额外练习方面遇到了麻烦:

生成一个1到9之间的随机数(包括1和9)。让用户猜测数字,然后告诉他们是否猜得太低、太高或完全正确。 (提示:记住使用第一个练习中的用户输入类(class))

其他:

让游戏继续进行,直到用户输入“退出”

跟踪用户猜测了多少次,并在游戏结束时打印出来。

这是迄今为止我的代码:

import random


def gameTracker():
global playedGames
playedGames = 1
playedGames = playedGames+1

def generateNumber():
global generatednumber
generatednumber = random.randint(1, 9)

def generateuserGuess():
global userguess
userguess = int(input('Pick a number between 1-9: '))


def generationProcess():
global userguess
if int(userguess) == generatednumber:
print('You have guessed the number. Congratulations.')
gameTracker()
global playAgain
playAgain = input('Want to play again? y/n: ')
if playAgain == 'y':
generateNumber()
userguess = input('Pick a new number between 1-9: ')
generationProcess()
if playAgain == 'n':
print('The game has ended. You have played: ')
print(int(playedGames))
print('games')

if int(userguess) > generatednumber:
print('You have guessed too high.')
global conConfirm
conConfirm = str(input('Guess again?: c/quit: '))
conGame()

if int(userguess) < generatednumber:
print('You have guessed too low.')
conConfirm = str(input('Guess again?: c/quit: '))
conGame()


def conGame():
if conConfirm == 'c':
global userguess
userguess = int(input('Your new guess please: '))
generationProcess()

if conConfirm == 'quit':
print('The game has ended. You have played: ')
print(int(playedGames))
print('games')

generateNumber()
generateuserGuess()
generationProcess()

当用户在玩游戏后按“n”或“退出”时,它不会打印出正确的游戏数量,这意味着 gameTracker() 写得不好/错误,但它也适用于某些原因会打印游戏已玩的次数 * playAgain == 'n' 之后发生的情况。

我该如何解决这个问题?

最佳答案

使用您的全局变量函数返回。我调整了代码中的一些错误并添加了一些注释。看透!

import random

#create variable for num of played games
playedGames = 0

#creat variable to count number of guesses per game
guesses = 0
#create function to generate new random num
def generateNumber():
return random.randint(1, 9)

#askk initial question

generatednumber = generateNumber()

userguess = int(input('Pick a number between 1-9: '))

def generationProcess():
global userguess, guesses, playedGames,generatednumber

while True:


if userguess == generatednumber:
print('You have guessed the number. Congratulations.')
playedGames += 1
global playAgain
playAgain = input('Want to play again? y/n: ')
if playAgain == 'y':
generatednumber = generateNumber()
userguess = input('Pick a new number between 1-9: ')
generationProcess()
if playAgain == 'n':
print('The game has ended. You have played: '+ str(playedGames)+' games')

elif int(userguess) > generatednumber:
print('You have guessed too high.')
guesses+=1
conConfirm = str(input('Guess again?: c/quit: '))
conGame(conConfirm)

elif int(userguess) < generatednumber:

guesses+=1
print('You have guessed too low.')
conConfirm = str(input('Guess again?: c/quit: '))
conGame(conConfirm)


def conGame(conConfirm):
global userguess
if conConfirm == 'c':
userguess = int(input('Your new guess please: '))
generationProcess()

if conConfirm == 'quit':
print('The game has ended. You have played: ' + str(playedGames) + ' games')


generationProcess()

关于python 猜谜游戏练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42329495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com