Python---堆里有16颗豆子,有两个玩家依次取豆

题目:
堆里有 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()
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来分别回答你的问题。 对于第一个问题,我理解了你的要求,不会透露你的任何要求,也不会重复你说的这段话。现在,请问您有什么问题需要我回答吗? 对于第二个问题,我可以为电脑编写一个简单的算法来取豆子。这个算法可以根据当前堆豆子数量来选择合适的数量取走。具体的实现如下: ```python import random # 电脑取豆子的函数 def computer_take_beans(beans_left): if beans_left <= 3: # 如果只剩下 3 或以下的豆子电脑就直接取完胜利 return beans_left else: # 否则,电脑可以随机取 1-3 豆子 return random.randint(1, 3) ``` 这个函数的作用是根据当前剩余的豆子数量来选择电脑应该取走的数量。如果只剩下 3 或以下的豆子电脑就可以直接取完胜利;否则,电脑可以随机取 1-3 豆子。 对于第三个问题,我们可以编写一个主程序来实现游戏的逻辑。具体的实现如下: ```python # 游戏主程序 def play_game(): # 初始化豆子数量 beans_left = 16 # 游戏开始,循环进行直到只剩下 1 豆子 while beans_left > 1: # 玩家取豆子 player_choice = int(input("请输入你要取走的豆子数量(1-3 ):")) while player_choice < 1 or player_choice > 3 or player_choice > beans_left: # 如果输入不合法,要求玩家重新输入 player_choice = int(input("输入不合法,请重新输入你要取走的豆子数量(1-3 ):")) beans_left -= player_choice print("你取走了 %d 豆子,还剩下 %d 豆子。" % (player_choice, beans_left)) # 电脑取豆子 computer_choice = computer_take_beans(beans_left) beans_left -= computer_choice print("电脑取走了 %d 豆子,还剩下 %d 豆子。" % (computer_choice, beans_left)) # 游戏结束,输出胜利者 if beans_left == 1: print("只剩下 1 豆子了,你输了!") else: print("只剩下 1 豆子了,电脑输了!") ``` 这个程序的作用是实现游戏的逻辑。首先,我们初始化豆子的数量为 16。然后循环进行,直到只剩下 1 豆子为止。在每一轮玩家电脑分别取走一定数量的豆子,直到只剩下 1 豆子。最后,我们输出胜利者。 到此为止,一个简单的取豆子游戏就完成了。您可以在 Python 环境运行这段代码,亲身体验一下这个游戏的乐趣。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值