python尼姆游戏设计
时间: 2023-10-30 19:05:08 浏览: 44
尼姆游戏是一种经典的数学博弈,规则如下:
1. 有若干堆石子,每堆石子数量不限。
2. 两个玩家轮流从中取走石子。
3. 每次只能从一堆石子中取走至少一个石子,至多取走整堆石子。
4. 取走最后一个石子的玩家胜利。
下面是一个简单的Python实现:
```python
def nim_game():
heaps = [] # 堆的数量和石子数量
while True:
try:
heap = int(input("请输入堆数:"))
if heap <= 0:
raise ValueError
else:
break
except ValueError:
print("请输入正整数!")
for i in range(heap):
while True:
try:
stones = int(input(f"请输入第{i+1}堆的石子数量:"))
if stones <= 0:
raise ValueError
else:
heaps.append(stones)
break
except ValueError:
print("请输入正整数!")
while True:
for i in range(len(heaps)):
print(f"第{i+1}堆还有{heaps[i]}颗石子。")
while True:
try:
heap = int(input("请选择要取走石子的堆数:"))
if heap <= 0 or heap > len(heaps):
raise ValueError
else:
break
except ValueError:
print("请输入正确的堆数!")
while True:
try:
stones = int(input("请选择要取走的石子数量:"))
if stones <= 0 or stones > heaps[heap-1]:
raise ValueError
else:
heaps[heap-1] -= stones
break
except ValueError:
print("请输入正确的石子数量!")
if sum(heaps) == 0:
print("游戏结束,恭喜你获胜!")
break
```
这个程序会先让玩家输入堆数和每堆的石子数量,然后轮流让玩家选择要从哪堆石子中取走多少个。直到所有石子都被取完,游戏结束。