设计小游戏“谁先走到17”,游戏规则:~ (1有两位参赛者,参赛者每次可选择走1步、2步或者3步: (2)两位参赛者交替走,所走的路程相加等于 17 为荻胜:< (3)如果走超过了17则判断为输,另一方直接赢得比赛:< (4)程序交互时,保证用户 不管输入什么,程序不崩溃;< (5) 交互时,提示并引导参赛者输入正确的内容。 请写出源代码:
时间: 2024-03-15 10:46:11 浏览: 190
电竞平台完整源码 和平精英王者荣耀游戏竞赛掌趣电竞源码
下面是Python语言的源代码:
```python
import random
def player_move(player, current_sum):
move = input("Player {}, please enter 1, 2, or 3 to move: ".format(player))
while not move.isdigit() or int(move) < 1 or int(move) > 3 or current_sum + int(move) > 17:
print("Invalid input, please enter 1, 2, or 3 to move.")
move = input("Player {}, please enter 1, 2, or 3 to move: ".format(player))
return int(move)
def main():
current_sum = 0
player = 1
while current_sum < 17:
move = player_move(player, current_sum)
current_sum += move
if current_sum >= 17:
print("Player {} wins!".format(player))
break
player = 3 - player
print("Game over.")
if __name__ == "__main__":
main()
```
代码的解释:
1. `player_move` 函数用于获取一位参赛者的输入,并进行错误处理。如果输入不是数字或者不在 1-3 的范围内,或者当前步数加上输入的步数超过 17,函数会一直提示用户重新输入,直到输入有效为止。
2. `main` 函数是游戏的主函数。它通过一个循环来模拟两位参赛者交替走步的过程。在每一轮循环中,调用 `player_move` 函数获取当前参赛者的输入,并将当前步数加上输入的步数。如果当前步数超过 17,则判断另一方胜利,游戏结束;否则交换参赛者并继续下一轮循环。
3. `if __name__ == "__main__":` 语句用于判断程序是否被直接运行(而不是被其他程序引入)。如果程序被直接运行,则调用 `main` 函数开始游戏。
阅读全文