Python 实现尼姆游戏
时间: 2024-11-03 12:21:34 浏览: 26
尼姆游戏(Nim Game),也被称为取款游戏,是一个经典的策略游戏。在Python中实现尼姆游戏,你可以创建一个简单的命令行交互程序。以下是基本步骤:
1. 首先,你需要定义两个列表:一个是代表游戏盘面上剩余的物品数量,另一个是玩家轮流操作的顺序(通常是两个玩家,A和B)。
```python
def nim_game(items, player_order):
```
2. 游戏规则:每个玩家可以选择任意数量的物品(从1到所有剩余的物品数),然后轮到下一个玩家。直到某次某个玩家拿完所有的物品,那个玩家就赢了。
3. 判断胜者:可以使用异或运算(`^`)来检查物品的数量是否为0。因为异或运算对于非零的元素会一直累加,所以如果物品总数是0,说明上一次操作后只剩下了偶数个物品,而奇数个物品不会是0,所以当前玩家无法赢得游戏。
```python
def is_winner(items):
return not items[0] ^ sum(items)
```
4. 主循环:询问用户输入操作,并更新游戏状态。当一个玩家赢得游戏时,结束循环并输出结果。
```python
while True:
# 获取玩家操作
action = input(f"Player {player_order} (enter numbers separated by space to take): ")
taken_items = [int(i) for i in action.split()]
# 更新物品数
items = [item - taken_item for item, taken_item in zip(items, taken_items)]
# 检查游戏是否结束
if is_winner(items):
print("Player", player_order, "wins!")
break
# 切换玩家
player_order = (player_order + 1) % 2
```
阅读全文