汉诺塔游戏规律,让汉诺塔沦为体力劳动!(后附汉诺塔解法Python源码)
记住这个规律,以后玩汉诺塔基本上就是体力劳动了。
规律:
先小后大,单左双右,循环。
设3个柱子分别是甲,乙,丙,把3根柱子看成一个循环,也就是说,甲的右边是乙,乙的右边是丙,而丙的右边则回到甲,同理,甲的左边就是丙。简单点,记住丙的右边是甲,和甲的左边是丙就行了。
盘子分别是盘1,盘2,盘3,盘4……盘1最小。
按照“单左双右”的规律,先移动小的,也就是先移动盘1,再移动盘2,盘3,按顺序,把能移动的都移动一次,每次移动一步,如果不符合游戏规则,就移动两步,还是不符合的话,就找到盘1,重新按照“单左双右”的规则走,直到完成游戏。
例:3个盘子,单数,向左走。
1,盘1向左移动一步,到丙柱。
2,盘2向左移动一步,不符合游戏规则,移动两步,到乙柱。
3,盘3向左移动一步,不符合游戏规则,移动两步,不符合游戏规则。找到最小的盘1,向左移动一步,移动到乙柱。
4,盘2被盘1压住,无法移动。盘3向左移动一步,到丙柱。
5,找到最小的盘1,向左移动一步,到甲柱。
6,盘2向左移动一步,不符合游戏规则,移动两步,到丙柱。
7,盘3被盘2压住,无法移动。找到最小的盘1,向左移动一步,到丙柱。
游戏完成。
原文链接:http://blog.sina.com.cn/s/blog_68507b0a0100onrr.html
附:n层汉诺塔解法的Python源码
def move(n, a, b, c):if n ==1:print(a, '-->', c)return move(n-1, a, c, b)print(a, '-->', c)move(n-1, b, a, c) move(5, 'A', 'B', 'C')
汉诺塔游戏规律,让汉诺塔沦为体力劳动!(后附汉诺塔解法Python源码)相关推荐
- 用Python做一个超好玩的拼图游戏,0基础也能包你学会,附送超详细注释的源码~
导语 你所认为的python........ python & bor ...
- 【使用递归玩通关汉诺塔游戏】算法01-递归(斐波那契数列、汉罗塔问题)-java实现
递归 定义:在一个方法(函数)的内部调用该方法(函数)本身的编程方式 简而言之就是 "自己调自己" 在玩游戏之前让我们先对递归有一个简单的了解吧! 5.1 递归简介 递归必须有一个 ...
- 游戏思考17:寻路引擎recast和detour学习二:recast导航网格生成流程\源码剖析流程\局限性,附录计算点线面举例代码
一.recastnavigation使用介绍 1)模式选择 Solo Mesh:单块生成 Tile Mesh:分块生成 Temp Obstacles:分块并支持动态阻挡 这里测试的话选单块生成 2)模 ...
- 用Android Studio做一个超好玩的拼图游戏,附送超详细注释的源码
文章目录 一.项目概述 二.开发环境 三.需求分析 四.实现过程 1.拼图游戏布局绘制 2.拼图游戏时间计时 3.拼图游戏打乱显示 4.拼图游戏碎片位置切换 5.拼图游戏成功的条件 6.拼图游戏重新开 ...
- Django计算机毕业设计-Steam游戏平台系统论文python(源码程序+lw+远程部署)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...
- 力扣LeetCode174.地下城游戏及Python源码实现
本题为LeetCode题库中第174题地下城游戏,难度困难,题目请参考这里. 一道比较困难DP题目,其中的难点在于如何定义状态转移方程,所以在这里记录一下.这道题刚开始做一点思路都没有,但是通过解读别 ...
- 跳一跳python源码下载_微信跳一跳游戏python脚本
微信更新后出来了一块比较火的小游戏,要是一款不涉及到排行的游戏,可能 没人去关注这款游戏.最开自己一直苦练技术,想在微信排行上面装一装,练了好久才跑三百多分.接着在Github(Github地址),有 ...
- java毕业设计——基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码)——俄罗斯方块游戏
基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现,文章末尾附有 ...
- 15款Cocos2d-x游戏源码
(1)用cocos2d-x开发的中国象棋游戏源码 使用Cocos2d-X2.2.3开发的一款中国象棋游戏,游戏中可以实现.新局面.悔棋.游戏音乐.胜利后会显示游戏结果. 源码下载:http://www ...
最新文章
- 华为某研究生程序员哀叹:年薪五十多万,存款一百万,却不知道未来怎么走!...
- 7 成中国职场人厌班,我们为什么会陷入职业倦怠?
- SpringMvc入门教程
- 高效率学习Java编程提升自我
- 关于win32与win64的兼容性问题
- ubuntu 16.04下安装mysql
- 重庆大学李婷婷计算机学院,北京大学青年研究中心赴我校考察调研
- 1090 Highest Price in Supply Chain (25 分)(模拟建树,找树的深度)牛客网过,pat没过...
- Set static ip for ubuntu
- pyramid setup(修改版)
- 软件需求规格说明书 模板
- 【财富空间】郝景芳:如何不被未来折叠
- 用.iso文件从硬盘安装redhatlinux7.3(转)
- POI填充Excel背景色
- go build报错,提示错误can‘t load package: package xxx is not in GOROOT (D:\Go\Go\src\xxx)
- windows sc使用方法之一
- php网页制作代码_如何制作一个简单的HTML登录页面(附代码)
- 质因数算法(C/C++)
- GrowingIO 数据采集 iOS SDK 测试实践
- 计算火车运行时间 本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间
热门文章
- 夏天快到了,热不热?下雪啦
- 论文阅读笔记《Decoupled Visual Servoing With Fuzzy Q-Learning》
- SAP的一些术语表,中英对照
- LPF: A Language-Prior Feedback Objective Function for De-biased Visual Question Answering 论文笔记
- 智能制造产业发展 推动鞋服行业新未来
- 你相信命运吗?还有命运规划局?
- 下载流媒体的好工具http://www.souxin.com/stream-software-down.htm
- 要怎么在计算机里清除桌面内存,电脑内存不足怎么办?怎么清理电脑内存?
- VBA中关于WORD的基本应用 比如批量改页眉页脚,从文件名取数字作为页眉等等。
- 子曾经曰过,别人对你的看法都是你表演给他们看的结果。