问题描述:尼姆游戏是这样一个游戏:假设有一堆物品,计算机和人类玩家轮流从其中拿走一部分。在每一步中,人或计算机可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家。拿走最后一个物品的玩家输掉游戏。

基本思路:在每次循环中让人类玩家先拿走一定数量的物品,然后再让计算机取走一些物品,要求拿走的物品数量不超过剩余数量的一半。如果物品全部取完则结束游戏,并且判定拿走最后一个物品的玩家为输。

from random import randintn=int(input('请输入一个正整数:'))
while n>1:#人类玩家先走print("该你拿了,现在剩余物品数量为:{0}". format(n))#确保人类玩家输入合法整数值 while True:try:num=int(input('输入你要拿走的物品数量:'))#确保拿走的物品数量不超过一半assert 1<=num<=n//2breakexcept:print('最少必须拿走1个,最多可以拿走{0}个。'. format(n//2)) n-=numif n==1:print('恭喜,你赢了!')break#计算机玩家随机拿走一些,randint()用来生成指定范围内的一个随机数 n-=randint(1,n//2)else:print('哈哈,你输了。')

测试结果

Python题目——实现人机对战的尼姆游戏:假设有一堆物品,计算机和人类玩家轮流从其中拿走一部分。在每一步中,人或计算机可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品相关推荐

  1. (新手小白必学!)用Python设计和实现聪明的尼姆游戏(人机对战)!!!!

    题目: 尼姆游戏是个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家.拿走最后 ...

  2. python尼姆游戏_python实现聪明的尼姆游戏(人机对战)

    尼姆游戏是个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分:在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家.拿走最后一个物品 ...

  3. Python聪明的尼姆游戏(人机对战)

    实验目的: (1)理解尼姆游戏规则. (2)了解多个函数定义与调用. (3)理解并熟练运用 while 循环. (4)理解带 else 子句的循环结构执行流程. (5)理解循环语句中的 break 语 ...

  4. 尼姆游戏(人机对战)的Python实现

    尼姆游戏是一个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家.拿走最后一个物 ...

  5. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)

    题目   尼姆游戏,这是一个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须拿走一部并且最多只能拿走一半物品,然后轮到下一个玩家.拿走 ...

  6. 一个傻傻的尼姆游戏及其Python实现

    尼姆游戏是个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家.拿走最后一个物品 ...

  7. Python设计和实现聪明的尼姆游戏

    Python设计和实现聪明的尼姆游戏 尼姆游戏是个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品 ...

  8. Python代码实现尼姆游戏聪明模式

    Python代码实现尼姆游戏聪明模式 代码问题描述: 尼姆游戏是个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多 ...

  9. python编程实验,模拟聪明版的尼姆游戏设计原理

    实验原理与内容: 本实验完成一个模拟聪明版的尼姆游戏功能: 尼姆游戏是个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分,在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并 ...

最新文章

  1. Ajax表单提交给C#后台选中的checkbox值
  2. web 前端基本框架
  3. toncat 如何部署 java_tomcat中部署java项目
  4. 微服务的隔离和熔断机制
  5. Spring时间(Date)类型转换+自定义
  6. 关闭IDEA双击shift全局搜索
  7. 通过vba代码将word转换为PDF
  8. 微信小程序实战之登录页面制作
  9. 无人驾驶汽车系统入门(十五)——ROS入门与实践(2)
  10. 路由器安全——破解wifi密码,同时中间人攻击
  11. python分组求和_如何对某一列自动分组,统计求和
  12. 大数据处理系统都有哪些?(批处理系统与迭代计算系统)
  13. 原来华为手机的语音助手这么好用,说话即可语音翻译,方便又实用
  14. D. Shuffle(cf)暴力枚举 + 组合数学
  15. 计算机网络——(6)网络互联技术与设备
  16. 从产品角度,快速接盘新系统的一些经验及方法提炼
  17. 中科大计算机科学夏令营,中科大计算机保研夏令营
  18. 7 张简单图片帮你弄懂企业级架构
  19. ACP敏捷8.人的因素.敏捷领导力和敏捷教练
  20. crontab定时脚本常见报错

热门文章

  1. ARP攻击的原理与防范
  2. 不要小看 b=~a4
  3. YOLOV3学习笔记(噼里啪啦up主)
  4. 玩转Liunx系统,看这篇文章就够了(一)
  5. UnboundLocalError: local variable ‘list‘ referenced before assignment
  6. windows下命令行方式激活venv虚拟环境
  7. html页面编码规则,HTML:网站通用代码规范
  8. 《Java黑皮书基础篇第10版》 第9章【笔记】
  9. 快速、简洁且高效的博客框架hexo
  10. 【渝粤教育】 国家开放大学2020年春季 1018国际公法 参考试题