题目:
堆里有 16 颗豆子,有两个玩家(假设一个玩家是电脑) 。每个玩家都可以从堆中的 16 颗豆子中取出 1 颗,2 颗或者 3 颗豆子。每个玩家在每回合中必须从堆中取出一定数目的豆子。玩家轮流取出豆子,取到最后 一颗豆子的玩家是输家。 思路: 写一个人取豆子的函数 ; 帮电脑设计一个算法,实现取豆子的函数 ; 在主程序中进行输流调用,谁最后拿到 1 粒豆子谁就输。
源代码:
import random
#人类取豆子
def people(n):
print('-' * 30)
while 1:
pick_people = int(input("人类玩家取出豆子数: "))
if (1 <= pick_people <= 3):
break
else:
print("每次取出的豆子数应该属于(1,2,3),请重新输入!")
continue
print("豆子剩余数量:", n - pick_people)
return (n - pick_people)
#电脑取豆子
def computer(n):
print('-' * 30)
pick_computer = random.randint(1,3)
print("电脑玩家取出豆子数:", pick_computer)
print("豆子剩余数量:", n - pick_computer)
return (n - pick_computer)
def main():
total = 16
print("豆子的总数为:",total)
while 1:
total = people(total)
if total <= 0:
print("电脑赢!!!")
break
total = computer(total)
if total <= 0:
print("人类赢!!!")
break
main()