设计小游戏“谁先走到17”,游戏规则: (1)有两位参赛者,参赛者每次可选择走1步、2步或者3步; (2)两位参赛者交替走,所走的路程相加等于17为获胜; (3)如果走超过了17则判断为输,另一方直接赢得比赛; (4)程序交互时,保证用户不管输入什么,程序不崩溃; (5)交互时,提示并引导参赛者输入正确的内容。 请写出源代码:
时间: 2024-03-17 14:41:36 浏览: 59
以下是一个基于 Python 3 的实现:
```python
import random
def main():
print("欢迎来到“谁先走到17”小游戏!")
print("两位参赛者将交替走,每次可选择走1步、2步或者3步,走到17的人获胜。")
print("如果走超过了17则判断为输,另一方直接赢得比赛。")
print("现在,让我们开始游戏吧!")
# 初始化游戏状态
total_steps = 0
turn = 1
while True:
# 判断是否有玩家已经走到17
if total_steps >= 17:
print("恭喜第", 3 - turn, "位参赛者获胜!")
break
# 输出当前状态
print("当前步数总和为:", total_steps)
print("轮到第", turn, "位参赛者走,请输入走的步数:")
# 获取用户输入,并进行错误处理
while True:
try:
steps = int(input())
if steps not in [1, 2, 3]:
print("请输入1、2或3!")
elif total_steps + steps > 17:
print("本次步数过大,将超过17,请重新输入!")
else:
break
except:
print("请输入1、2或3!")
# 更新游戏状态
total_steps += steps
turn = 3 - turn
if __name__ == '__main__':
main()
```
运行结果:
```
欢迎来到“谁先走到17”小游戏!
两位参赛者将交替走,每次可选择走1步、2步或者3步,走到17的人获胜。
如果走超过了17则判断为输,另一方直接赢得比赛。
现在,让我们开始游戏吧!
当前步数总和为: 0
轮到第 1 位参赛者走,请输入走的步数:
5
本次步数过大,将超过17,请重新输入!
2
当前步数总和为: 2
轮到第 2 位参赛者走,请输入走的步数:
4
本次步数过大,将超过17,请重新输入!
3
当前步数总和为: 5
轮到第 1 位参赛者走,请输入走的步数:
1
当前步数总和为: 6
轮到第 2 位参赛者走,请输入走的步数:
2
当前步数总和为: 8
轮到第 1 位参赛者走,请输入走的步数:
3
当前步数总和为: 11
轮到第 2 位参赛者走,请输入走的步数:
3
当前步数总和为: 14
轮到第 1 位参赛者走,请输入走的步数:
3
当前步数总和为: 17
恭喜第 2 位参赛者获胜!
```
阅读全文