[英]How do I insert a restart game option?
我想在我的骰子游戏结束时有一个选项,上面写着:
你想重新开始吗? 是还是不是
如果用户输入“是”,游戏将重新启动,并且无限次,直到用户玩够了游戏并退出。
我知道你可以用循环来做到这一点,但是怎么做呢?
import random
print("Dice Game: try to roll a bigger number than the computer! Good luck!")
print("Type 'go' to roll")
dieroll = input()
if dieroll == 'go':
myNumber = random.randint(1,6)
pcNumber = random.randint(1,6)
print("You rolled " + str(myNumber))
print("He rolled " + str(pcNumber))
if myNumber < pcNumber:
print("You lose!")
if pcNumber < myNumber:
print("You win!")
您可以将游戏包装到例如game()
的函数中,并在无限循环中执行它。 如果用户说 NO,则退出循环,否则再次运行。 等等...
while True:
game()
restart = input('do you want to restart Y/N?')
if restart == 'N'
break
elif restart == 'Y':
continue
您可以使用while
循环来实现此选项。
这是一个示例实现:
import random
# Instructions for starting the game
while True:
print("Type 'go' to roll")
dieroll = input()
if dieroll == 'go':
myNumber, pcNumber = random.randint(1,6), random.randint(1,6)
print("You rolled " + str(myNumber))
print("He rolled " + str(pcNumber))
if myNumber <= pcNumber:
print("You lose!")
else:
print("You win!")
print("Do you want to restart ? Yes or No")
response = input()
if not response == "Yes":
break
首先,您应该将代码打包到一个函数中,例如
def game():
your code
对于用户提示,您可以使用 raw_input() - Python 2.x 和 Python 3.x 中的 input() 在程序末尾尝试添加如下内容:
answer = raw_input("Restart?")
if answer == "Yes":
print "Leaving the game"
sys.exit(0) # import sys module
elif answer == "No":
print "Starting new game"
game()
将您的程序划分为每个任务的单独函数是一个好主意。 它将变得易于阅读和修改,因此可以轻松创建和实现重启功能。
函数 restart() 根据用户输入返回一个布尔值。 主 startGame 循环在 while 循环的每次迭代中检查该值。
当用户想要停止播放 (False) 时,函数返回并且程序停止。
import random
def rollDie():
myNumber = random.randint(1, 6)
pcNumber = random.randint(1, 6)
print("You rolled %d" % myNumber)
print("The PC rolled %d" % pcNumber)
if myNumber > pcNumber:
return "--- You win! ---"
else:
return "--- You lose! ---"
def restart():
user_input = input("Would you like to play again? Type 'Yes' or 'No'\n\n")
if user_input.lower() == "no": # Converts input to lowercase for comparison
return False
elif user_input.lower() == "yes":
return True
def startGame():
while True:
user_input = input("Dice Game: Try to roll a bigger number than the computer! Good Luck \n" +
"Type 'go' to roll the die... \n\n")
if user_input == "go":
print(rollDie())
if not restart():
return
startGame()
如果要在OOP python中添加重启游戏的功能,只需将整个main.py代码放在一个函数内,在main.py末尾触发该函数即可。 在 main.py 文件中写好问题语句后,在(If 部分)先清屏然后触发放入 main.py 文件代码的函数,在(else 部分)使布尔语句为 false。
**def game():**
import time
from turtle import Screen
from player import Player
from car_manager import CarManager
from scoreboard import Scoreboard
SPEED = 0.1
player = Player()
screen = Screen()
screen.setup(width=600, height=600)
screen.tracer(0)
car_manager = CarManager()
screen.listen()
screen.onkey(player.move, "Up")
scoreboard = Scoreboard()
game_is_on = True
while game_is_on:
time.sleep(SPEED)
screen.update()
car_manager.create_car()
car_manager.move()
for car in car_manager.all_cars:
if car.distance(player) < 20:
game_is_on = False
scoreboard.game_over()
**q = screen.textinput("Restart", "Do you want to restart? ")
if q == "yes".lower():
screen.clear()
game()
else:
game_is_on = False**
if player.is_at_finish():
player.start()
car_manager.level_up()
car_manager.box_inc()
scoreboard.score_up()
screen.exitonclick()
游戏()
我刚刚提交了一篇关于类似问题的帖子。 让我知道这是否有帮助:
为了满足您的特定需求,您可以将重启代码更新为如下所示,以允许输入是/否选项。
play_again = input("Do you want to restart? Yes or No\n")
if play_again == "Yes":
exec(open("./yourfilenamehere.py").read())
else:
exit()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.