设计小游戏“谁先走到17”,游戏规则:~ (1有两位参赛者,参赛者每次可选择走1步、2步或者3步: (2)两位参赛者交替走,所走的路程相加等于 17 为荻胜:< (3)如果走超过了17则判断为输,另一方直接赢得比赛:< (4)程序交互时,保证用户 不管输入什么,程序不崩溃;< (5) 交互时,提示并引导参赛者输入正确的内容。 请写出源代码:
时间: 2024-03-15 08:46:42 浏览: 42
以下是基于 Python 3.x 的源代码:
```
import random
def get_input(player_name):
"""
获取玩家输入
"""
while True:
try:
step = int(input(f"{player_name}请走1-3步:"))
if step < 1 or step > 3:
print("请输入1-3之间的数字")
else:
return step
except ValueError:
print("请输入数字")
def play_game():
"""
进行游戏
"""
total_steps = 17
current_steps = 0
players = ["玩家1", "玩家2"]
random.shuffle(players) # 随机决定先手玩家
print(f"{players[0]}先手")
while current_steps < total_steps:
player = players[0] # 轮流掷骰子
step = get_input(player)
if current_steps + step > total_steps:
print("您输入的步数太大了,请重新输入")
continue
current_steps += step
print(f"{player}走了{step}步,当前位置为{current_steps}")
if current_steps == total_steps:
print(f"{player}胜利!")
return
# 切换玩家
players = players[::-1]
if __name__ == '__main__':
play_game()
```
运行代码后,会随机决定先手玩家,然后轮流输入每个玩家选择的步数,直到有玩家走到17为止。如果玩家输入的步数不在1-3之间,会提示重新输入;如果输入的步数导致当前位置超过了17,则会提示重新输入。最终,胜利的玩家将被宣布。
阅读全文