Python 尼姆游戏(人机对战)
设计和实现尼姆游戏(人机对战)
实验目的
- 理解尼姆游戏规则
- 了解多个函数的定义与调用
- 理解并熟练运行while循环
- 理解带else子句的循环结构执行流程
- 理解循环语句的break语句的作用
- 了解使用循环和异常处理结构对用户输入进行约束的用法
- 养成时刻注意各级代码缩进级别的习惯
- 实验内容
实验内容
- 尼姆游戏是一个著名的游戏,有很多变种玩法。两个玩家轮流从一堆物品中拿走一部分。在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家。拿走最后一个物品的玩家输掉游戏。
- 在聪明模式中,计算机每次拿走一定数量的物品使得堆的大小是2的幂次方减1—也就是3,7,15,31,63等。如果有一定数量的剩余物品,计算就随机拿走一些。
- 编写程序,模拟聪明版及非聪明版的尼姆游戏。并进行两种的比较及分析。给出聪明版比非聪明版的胜算结论。
n | 目的数 | 操作数x | n | 目的数 | 操作数x | |
---|---|---|---|---|---|---|
1 | 1 | 失败 | 17 | 15 | 2 | |
2 | 1 | 1 | 18 | 15 | 3 | |
3 | * | ran | 19 | 15 | 4 | |
4 | 3 | 1 | 20 | 15 | 5 | |
5 | 3 | 2 | 21 | 15 | 6 | |
6 | 3 | 3 | 22 | 15 | 7 | |
7 | * | ran | 23 | 15 | 8 | |
8 | 7 | 1 | 24 | 15 | 9 | |
9 | 7 | 2 | 25 | 15 | 10 | |
10 | 7 | 3 | 26 | 15 | 11 | |
11 | 7 | 4 | 27 | 15 | 12 | |
12 | 7 | 5 | 28 | 15 | 13 | |
13 | 7 | 6 | 29 | 15 | 14 | |
14 | 7 | 7 | 30 | 15 | 15 | |
15 | * | ran | 31 | * | ran | |
16 | 15 | 1 | 32 | 31 | 1 |
'''模拟聪明版尼姆游戏
一人进行“聪明操作”
另一人随机生成数'''
import math
import randomdef smart(n):logn = int(math.log<
Python 尼姆游戏(人机对战)相关推荐
- python尼姆游戏_python实现聪明的尼姆游戏(人机对战)
尼姆游戏是个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分:在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家.拿走最后一个物品 ...
- 尼姆游戏(人机对战)的Python实现
尼姆游戏是一个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家.拿走最后一个物 ...
- Python聪明的尼姆游戏(人机对战)
实验目的: (1)理解尼姆游戏规则. (2)了解多个函数定义与调用. (3)理解并熟练运用 while 循环. (4)理解带 else 子句的循环结构执行流程. (5)理解循环语句中的 break 语 ...
- python尼姆游戏_使用Python编写一个聪明的尼姆游戏
关于尼姆游戏的介绍请参考上一篇文章:一个傻傻的尼姆游戏及其Python实现,本文使用Python实现一个聪明的尼姆游戏. 在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是2的幂次方减1--也就是 ...
- (新手小白必学!)用Python设计和实现聪明的尼姆游戏(人机对战)!!!!
题目: 尼姆游戏是个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家.拿走最后 ...
- Python题目——实现人机对战的尼姆游戏:假设有一堆物品,计算机和人类玩家轮流从其中拿走一部分。在每一步中,人或计算机可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品
问题描述:尼姆游戏是这样一个游戏:假设有一堆物品,计算机和人类玩家轮流从其中拿走一部分.在每一步中,人或计算机可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家 ...
- 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
题目 尼姆游戏,这是一个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须拿走一部并且最多只能拿走一半物品,然后轮到下一个玩家.拿走 ...
- 一个傻傻的尼姆游戏及其Python实现
尼姆游戏是个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家.拿走最后一个物品 ...
- 使用Python编写一个聪明的尼姆游戏
关于尼姆游戏的介绍请参考上一篇文章:一个傻傻的尼姆游戏及其Python实现,本文使用Python实现一个聪明的尼姆游戏. 在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是2的幂次方减1--也就是 ...
- Python编写尼姆游戏
Python编写尼姆游戏 最主要的思想是要构建函数思想.就是要将玩家和电脑分模块给编写出来.玩家可以编写比较简单不多赘述.这里主要讲一讲电脑模块.首先我们要保证电脑拿走物品剩下来过后要是2∧n-1如果 ...
最新文章
- php和python哪个工资高-学python和php哪个前景好
- leetcode算法题--网格照明
- “网工”可以跳越“网管”吗?
- AD域服务器卸载---WindowsServer2012R2
- Powerdesigner 在线打开 不用安装客户端 访问pdm,ldm文件
- MDT部署中命令行脚本的使用。
- 移除List中的元素,你的姿势对了吗?
- Magento布局layout.xml文件详解
- 一些js/css动画 mark
- 【ElasticSearch】Es 源码之 HttpServerTransport 源码解读
- PHP学习笔记十九【析构函数】
- 苹果收购倒闭智能家居安防初创公司 Lighthouse AI 专利...
- 三容水箱液位控制系统_过程控制实验-三容水箱液位控制系统
- 雅加达出差(8月24日到25日)
- 虚拟机挂起后,怎么恢复
- Xmind教程-添加外框
- HQChart使用教程95-报价列表对接第3方数据3-股票数据
- STM32学习笔记---TFT-LCD
- 拉结尔派遣任务辅助介绍 拉结尔快速升级脚本挂机工具
- 深度学习训练遇到的坑(一)
热门文章
- C++头文件【iomanip】的简要讲解
- C语言基础知识手册(三)——预处理、运算符
- Zabbix自动发现规则如何使用过滤器
- 小白学 RPA(全球机器人流程自动化)----uipath的初接触
- 总有你要的编程书单(GitHub )
- “赚钱机器”网址导航站的生存之道
- js中出现addEventListener is not a function
- 认领签名空包(亲测mac 可用)
- 谷粒学院(十一)课程最终发布 | 课程列表 | 阿里云视频点播服务 | 小节实现视频上传
- 静态路由 路由黑洞 缺省理由 空接口路由 浮动静态路由