取火柴游戏

甲、乙两人玩抽取火柴的游戏,一共有21根火柴。两个人轮流取火柴,每人每次最少取1根火柴,最多可以取4根火柴,不可多取,也不能不取,谁取到最后一根火柴谁就输了。甲让乙先取火柴,结果每次都是甲获胜。试编写程序,演示取火柴游戏的过程。

示例1:

输入:

3
4
2
4

输出:

乙拿了3根火柴。
甲拿了2根火柴。
乙拿了4根火柴。
甲拿了1根火柴。
乙拿了2根火柴。
甲拿了3根火柴。
乙拿了4根火柴。
甲拿了1根火柴。
轮到乙抽,只剩下1根火柴。乙输了!

解释:

乙先拿了3根火柴,甲后拿了2根火柴,第一轮结束。乙先拿了4根火柴,甲后拿了1根火柴,第二轮结束。乙先拿了2根火柴,甲后拿了3根火柴,第三轮结束。乙先拿了4根火柴,甲后拿了1根火柴。轮到乙抽,只剩下1根火柴。乙输了!游戏结束。

示例2:

输入:

5
4
3
2
1

输出:

输入错误,请重新输入。
乙拿了4根火柴。
甲拿了1根火柴。
乙拿了3根火柴。
甲拿了2根火柴。
乙拿了2根火柴。
甲拿了3根火柴。
乙拿了1根火柴。
甲拿了4根火柴。
轮到乙抽,只剩下1根火柴。乙输了!

解释:

乙拿了5根火柴,程序报错,请重新输入。乙先拿了4根火柴,甲后拿了1根火柴,第一轮结束。乙先拿了3根火柴,甲后拿了2根火柴,第二轮结束。乙先拿了2根火柴,甲后拿了3根火柴,第三轮结束。乙先拿了1根火柴,甲后拿了4根火柴,剩余1根火柴。轮到乙抽,只剩下1根火柴。乙输了!游戏结束。

def tackMatch(matchNumber=21):
    id = 0 
    take_number = 0
    while matchNumber >= 1:
        id += 1
        if id % 2 == 1:
            gamer = "乙"
            if matchNumber == 1:
                print(f"轮到{gamer}抽,只剩下1根火柴。{gamer}输了!")
                break
            if matchNumber > 5:
                while True:
                    take_number = eval(input())
                    if take_number >= 5:
                        print("输入错误,请重新输入。")
                    else:
                        break           
            else:
                take_number = 1
            print("{}拿了{}根火柴。".format(gamer,take_number))
        else:
            gamer = "甲"
            take_number = 5 - take_number
            print("{}拿了{}根火柴。".format(gamer,take_number))
        matchNumber -= take_number
tackMatch()

相关推荐

  1. 火柴游戏

    2023-12-15 15:42:05       57 阅读
  2. [动态规划]矩阵游戏

    2023-12-15 15:42:05       44 阅读
  3. C++ [NOIP2007 提高组] 矩阵游戏

    2023-12-15 15:42:05       46 阅读
  4. P1005 [NOIP2007 提高组] 矩阵游戏

    2023-12-15 15:42:05       40 阅读
  5. Acwing.504 转圈游戏(带余的快速幂)

    2023-12-15 15:42:05       30 阅读
  6. xpath爬4399的最新游戏系列

    2023-12-15 15:42:05       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-15 15:42:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-15 15:42:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-15 15:42:05       82 阅读
  4. Python语言-面向对象

    2023-12-15 15:42:05       91 阅读

热门阅读

  1. C语言:实现字符串连接

    2023-12-15 15:42:05       62 阅读
  2. 二建自学资料

    2023-12-15 15:42:05       62 阅读
  3. git关于ssh我遇到的问题解决链接

    2023-12-15 15:42:05       66 阅读
  4. 判断数组中对象的某个值是否有相同的并去重

    2023-12-15 15:42:05       58 阅读
  5. ZlmediaKit rtp包排序后流程

    2023-12-15 15:42:05       41 阅读
  6. 【Mysql】myisam和innodb的区别?

    2023-12-15 15:42:05       53 阅读
  7. 【PHP】计算某个特定时间戳距离现在的天数

    2023-12-15 15:42:05       67 阅读
  8. 鸿蒙(HarmonyOS)应用开发——三方库(题目答案)

    2023-12-15 15:42:05       116 阅读
  9. 【C++多线程编程】(一)之详解互斥锁mutex

    2023-12-15 15:42:05       57 阅读
  10. Python之禅

    2023-12-15 15:42:05       52 阅读
  11. PHP的协程是什么?

    2023-12-15 15:42:05       65 阅读
  12. MFC Picture控件显示图片并适应控件大小

    2023-12-15 15:42:05       52 阅读
  13. 小程序跳转按钮

    2023-12-15 15:42:05       45 阅读
  14. Linux---终端命令格式的组成

    2023-12-15 15:42:05       53 阅读
  15. Android Binder 调用栈

    2023-12-15 15:42:05       50 阅读