九月, 2008 的文章

在线华容道游戏的炮制手记 - 华容道资料大全/索引(目前最全)

当初开始做发芽网的时候,是为了练习web编程(Django),这是之前没有探索过的领域

从小到大,我都一直保持着旺盛的求根追底的欲望。
代码发芽网的时候,我收集了网上十几种高亮软件,更是实践过不少,甚至因此而导致机器染毒
最终选择了Pygments,在client端改进以后,实现了我想要的各种功能。

在线华容道游戏的时候,花了好多个晚上搜集资料,终于有把握做到目前为止的最全最有学术风格的在线华容道

————————————–自恋的分界线————————————–

好吧,回到主题。

华容道游戏的背景
=======================
华容道游戏取自著名的三国故事。
曹操在赤壁大战中被刘备和孙权的“苦肉计”、“火烧连营”打败,被迫退逃到华容道,又遇上诸葛亮的伏兵。
关羽为了报答曹操对他的恩情,明逼实让,终于帮助曹操逃出了华容道。
游戏就是依照“曹瞒兵败走华容,正与关公狭路逢。只为当初恩义重,放开金锁走蛟龙”这一故事情节。

华容道游戏的定义
=======================
一般说起华容道是指由10个滑块构成的滑块游戏,1个2×2,5个1×2(或2×1),四个1×1滑块,如下图所示:

2×2的滑块代表曹操
1×2和2×1的滑块代表蜀将:张飞赵云马超黄忠关羽
1×1的滑块,代表蜀兵

注意,华容道只是滑块游戏的一种。记得小时候玩过重排十五,就是4×4的方格里面只有15个格子,要一点点的把打散的1-15标号的小块滑动、归位。还有一种是拼人脸或者风景画的,也是类似的游戏。这类有系统称滑块游戏。
还有哪些滑块游戏?
我在找资料的过程中找到了一个国外游戏强人Rob的收藏网页,看到瞠目结舌,简直是我的偶像啊!
你可以点击这里看看他收藏的滑块游戏,光这个就有够看的,你甚至可以看到华容道的多种变体,很多都有专利的哦。

华容道的荣誉
=======================
1. 与法国的“独立钻石”和匈牙利的“魔方”合称游戏界的三大不可思议
2. 与七巧板、九连环合称“中国的难题

华容道的规则
=======================
1. 过关目标:利用两个空位移动滑块,将曹操移到出口
2. 过关目标(扩展1):对于非左右镜像的开局,要求玩到左右镜像为结局,否则,要求玩到上下镜像为开局。
  这个。。。我只能说,游戏和自虐,有时候真是不容易分清啊。。。

华容道的开局
=======================
花容道的理论上的开局有很多种,到底有多少种,不知道。呵呵其实用计算机比较好枚举的,不过没多大意义罢了。
呵呵,首先说一下标准的“开局”的定义:
1. 曹操位于出口的对立位置,一般出口在下方,所以曹操一般位于最上方的正中
2. 开局的步骤不能是其他开局求解路径的中间结果。鄙人以为,加上“最短求解路径”可能会好些。
后来标准放宽了,曹操位置也不一定为最上方的正中了,重复或者近似重复的开局也很多了。

这个部分是我花时间最多的地方,国内的网页,搜索结果很多,信息量却很小,大部分是抄来抄去。
那就搜索一下英文的资料吧:目前最好的方式一是搜索Huarong Path或者Huarong Dao,或者,就混合一下“华容道”和Klotski(波兰语,意为“方块”)
大多数的开局,都能在维基百科的繁体条目華容道 (遊戲) 找到

我搜集的华容道开局见这里(图文并茂,可直接开玩):华容道开局(关卡)大全

在线华容道游戏的制作
=======================
受到iPhone上滑块游戏别人给做的中国风格界面的启发,我想做一款看起来古朴的华容道游戏
由于该作者只说到图片来源于网络,没给更多的信息,搜了好久
差不多一刻钟,才找到出处:叶熊的《三国人物水墨画
画的真不错,很是有些中国古典风味,应用的时候,为了突出特点,黄忠的图片用的是另一个人(看出来是哪个了吗?)
顺便说一下图片是拿Photoshop处理的,木头纹理素材外加正片叠底效果即可。
关于程序,没什么好说的,喜欢看的,打开源码,大部分都是javascript操作,逻辑简单,这里不说了。

华容道的解法
=======================
唉唉,不一而足,像我这样的水人,只好拿计算机写程序来暴力遍历之。
据说最早系统研究游戏华容道的是苏州大学数学教授许莼舫先生。
1952年,他在《数学漫谈》中对这个游戏作了详细的分析,总结出8条规则。
这8条可以归纳为以下4点:
  1,四个小兵必须两两在一起,不要分开;
  2,曹操,关羽,大将移动时前面应有两个小兵开路;
  3,曹操移动时后面还应有两个小兵追赶;
  4,以下三种状况,其中各块都可局部(不妨碍其他地方)任意移动。
(注意,实际上这样并不总是最短的)

华容道的参考资料
=======================
华容道-百度百科:http://baike.baidu.com/view/62732.htm
Klotski#Hua_Rong_Dao:http://en.wikipedia.org/wiki/Hua_Rong_Dao#Hua_Rong_Dao
Sliding Block Puzzle:http://en.wikipedia.org/wiki/Sliding_block_puzzle
Rob’s Puzzle Page:http://www.robspuzzlepage.com/
华容道开局(关卡)大全:http://www.fayaa.com/youxi/hrd/#hrd-layouts
华容道游戏的简单介绍:http://www.fayaa.com/youxi/hrd/#game-spec
智取华容道-华容道游戏在线求解: http://www.fayaa.com/youxi/hrd/add/
華容道 (遊戲) :http://zh.wikipedia.org/wiki/%E8%8F%AF%E5%AE%B9%E9%81%93_(%E9%81%8A%E6%88%B2)
《数学-七巧板、九连环和华容道》吴鹤龄著
iPhone上的华容道游戏:http://www.weiphone.com/viewthread.php?tid=40783
华容道游戏资料索引:http://www.2maomao.com/blog/hrd-youxifayaa-birth-log/
华容道游戏布局:http://blog.csdn.net/Suprman/archive/2007/01/20/1488282.aspx
华容道电脑解法探讨:http://blog.csdn.net/Suprman/archive/2007/01/19/1487576.aspx
华容道最短路径求解程序(Python版)By Leo Jay:http://www.fayaa.com/code/view/377/
闯过华容道:http://mathserver.sdu.edu.cn/html/sxjm/examples/ex5.htm
香港的黄志华先生关于华容道的系列文章:http://blog.chinaunix.net/u/14418/article_88127.html
华容道的十九个开局:http://blog.tiantiansoft.com/user1/498/archives/2006/2991.html
华容道游戏秘决技巧: http://blog.sina.com.cn/s/blog_53d7161501009u13.html
华容道搜索算法研究: http://www.fjptsz.com/xxjs/xjw/rj/110.htm
(原创)“华容道”玩具不是中国人发明的: http://sokoban323.spaces.live.com/Blog/cns!EDCFE66FC8463C88!369.entry
華容道的「起源」(之一): http://me.abelcheung.org/2006/06/17/origin-of-klotski-1/
華容道的「起源」(之二): http://me.abelcheung.org/2006/07/28/origin-of-klotski-2/

至于网上流行的flash做的那个在线华容道游戏,背景乐很不错,图片也很好(用的三国志xx里面的人物)
就是计算步骤有些问题,开局名称也有许多错乱,这里就不给链接了。

—————————后记————————————–
在整个过程中,不得不提的几个强人:
1. 黄志华先生:看看他的blog你就知道,这个人很强,兴趣涉猎广泛,且每样都有精细研究。
真的很佩服,年近半百,心似顽童。

2. Leo Jay: 在python-cn上遇到的
在我发布华容道游戏一天之内,用Python写出最优解,更私下里遍历了所有开局
(主页没找到,链接是代码发芽网上的)

3. 智力游戏收藏家Rob: 啊哈,光是滑块游戏,都有五六十种,不说其他的了。
我逛了一下,我玩过的智力游戏大多都在里面了(现实生活中玩的哦,不是计算机游戏)

诸位看官,如果有什么建议或者其他资源,请不吝赐教,我会一一添加或修正。

PS: 目前感兴趣的是黑白棋智能程序,准备做个黑白棋对战加上一些智能机器人,呵呵
再PS: 老婆和刚满百岁的小新月从家里过来了,这段时间估计做不了什么更新了

  • Share/Bookmark

一系列NB的数学文章 - 长度是怎样炼成的zz

如果你对这两个问题感兴趣,建议读一下下面的几篇文章:
1. 为什么“点”的长度是0?为什么由点构成的“线”可以有长度?
2. 著名的“飞矢不动”的悖论:
 一支飞驰的箭,在每一个确定的时刻都静止在一个确定的位置上,
 为什么经过一段时间后会移动一段距离?

(注:需要对一定的数学基础才能理解)

长度是怎样炼成的(序)
长度是怎样炼成的(1)
长度是怎样炼成的(2)
长度是怎样炼成的(3)
长度是怎样炼成的(4)

不知道你看完以后如何感觉

我的感觉是:

豁然开朗!

  • Share/Bookmark

人的一生就在为自己建一座房子。。。吗?

哈,别被标题误导,虽然我很有买房的需求,但是这个不是关于买房的。

昨天晚上,历时三个半月的卡内基培训课程终于上完最后一课
在最后的那一会儿,培训老师讲了一个故事:

有一个建筑师,做了半辈子的房子,随着他的水平和名声越来越高,他越来越觉得累
终于有一天,他提出要辞职了。

老板说:好吧,你再建一座房子,就可以走了。
建筑师于是开始建他的最后一座房子。

在建筑的过程中,有一天他发现墙有点歪
当他像以往一样想去纠正的时候,突然想到了这一点:
“反正是最后一次了,别费那劲了”,他想。

紧跟着,他发现,窗户有点儿斜,这一次也不例外,
“反正是最后一次,别费那劲了”
这个想法下,地下室的楼梯,天花板的吊顶,地板的花纹,厨房和厕所的问题
等等等等,一切都被刻意的忽略了。

房子终于建成了,这天建筑师来交差,一切交代完毕以后,转身要走的时候。
“等一等”,老板说着,从抽屉里拉出一串钥匙
“谢谢你这么多年的辛苦劳动,这个房子是我送给你的。”

天哪!
建筑师环顾着这个他一生中做的最差劲的房子,歪斜的门窗和吊顶、差劲的地板和楼梯
他无比懊悔的想道:
如果早知道这个房子是给自己盖的房子,我一定会很用心的。”

故事讲到这里,老师问我们:
如果你是这个建筑师,并且知道这个房子是送给自己的,你会好好的、用心的对待吗?
这个问题的答案显而易见,结果我们反而迟疑了一下才说:当然会啊?
真的会吗?
当然会啊?
真的真的会吗?老师继续问了一句,接着说:
人的一生的努力就相当于在给建一座“房子”
将来你会住在什么样的“房子”里面,取决于你现在付出多少的努力。
现在你知道了,建这个“房子”是给自己住的,你会好好的、用心的对待吗?

鸦雀无声。

转转头,甚至看到了几张半张着的嘴。

(好吧,故事说到这里,你可能被激励了,如果你只想读一篇励志的文章,打住吧,别再往下看了)

—————————————————————

我当时也被震撼了,一时间反应不过来,但是总觉得这个比方有点不对劲,一时想不出来。

基于我对励志故事的理解,多数故事都是那么令人热血沸腾
但是如果演绎到现实,一般都有隐含的很深的不大相通之处。

今天想明白了几点,一一列在下面:
1. 最主要的是时间:建房子最多一年,为自己谋养老可是一辈子,这种量变,已足以引起质变。
2. 如果你为自己建“房子”建了一生,是不是忙忙碌碌建房子,从来都没有享受过自己的“房子”?
 这让我想起了那个“渔夫晒太阳的故事”。
3. 一个建筑师可以为了自己的房子,忙三天不歇息,严格要求自己。
 但是如果知道这个房子将要建五六十年,他也会抽烟、打麻将、逛商场、偶尔开开小差。
4. 建房子的过程中要不要享受自己现有的房子的问题,每一个人都要面对
 个人选择不同、机遇不同,遇事也不要强求。
5. 当然,你可以狡辩,说“建房子”也包括这些享受。
 好吧,当一个概念想要无所不包的时候,它就快要失去价值了。

总体上,这个故事还是很有价值的,话说得也没错,挺有意义的。
在使用上,可以自我激励,更好的是拿来激励别人,如果我再有机会到学校去演讲,一定可以做得很神棍。

自我激励,这是很有必要的
但我觉得作为一个奔三的成年人,分清楚什么是对自己重要的,更有必要。

  • Share/Bookmark

华容道游戏的奇遇,世界真小啊

今天Leo Jay告诉我,我将黄志华先生自创的背水列阵开局贴倒了,上下对调才正确,遂上网查证,不料却见到黄志华先生的这篇文章,不禁惊叹互联网上世界之小:

  早前的五月三十一日,在這裡張貼了自創的華容道陣勢《背水列陣》(陣勢見下圖),期望能得到高手賜教,給予步數更精煉的解法。昨天,收到內地網友Leo Jay君的電郵,賜增一個僅用了56步的解法,真是精煉復精彩,佩服!也非常感謝!據Leo Jay君說,他是以自己所寫的電腦程式搜尋出這個解法的。是的,研究華容道遊戲,懂得寫程式就佔優很多哦!筆者這個電腦盲徒有羡慕。

看到这里真是忍不住大笑出声,心情很是畅快。

——————————————————————–

大约二十几天前我兴趣所致,想写个在线华容道游戏,能够把走过的路数回放(之前没有见到有这样的程序),以便有兴趣者研究之用,顺便练习一下刚学会不久的程序语言Javascript + jQuery。

在网上找来找去,到处都是转载来去的文章,但是对华容道最初的研究资料,却只字不提。
最后终于找到了黄志华先生的博客,看到了吴鹤龄的书<<好玩的数学-七巧板、九连环和华容道>>,资料很不错

最终,我的愿望得以实现,华容道游戏于昨日凌晨上线(http://www.fayaa.com/youxi/hrd/
一共收集了52种(10个方块的)开局,其中就有背水列阵:http://www.fayaa.com/youxi/hrd/38/#gate-spec

然后就我就在编程讨论区(Python-cn)发布了这个在线游戏,并提到自己实在手拙,连横刀立马都没有过去。

岂知,半天不到,Leo Jay就在讨论区里回复:”不如我帮帮你吧,我写了一个解华容道的程序”。
一番交流之后,Leo Jay的程序最终版确定下来,可以走遍给定局面的所有路数以找出最短者。如有兴趣,代码在这里:http://www.fayaa.com/code/view/377/
(顺便说一下,知道Leo Jay大侠,也是我做出这个贴代码的网站去python-cn显摆的时候,他提供了很多的建议,呵呵)

可以点击这里查看文中提到的Leo Jay的56步解法(因二兵排列不能居中,少了两步,是正确的)

PS:
感谢黄志华先生在网上贴出的许多资料和想法,受益匪浅。
黄先生日志资料非常丰富,基本上都是原创内容,非常钦佩。

  • Share/Bookmark

开局最全的在线华容道游戏 - 界面古朴典雅,过关结果可动态回放

在线华容道 - 游戏发芽网

游戏特点
* 界面古朴典雅
* 50多种开局(横刀立马、守口如瓶、层层设防等…)
* 操作简单、可回退
* 过关结果可动态回放

最大的优点就是最后一条,过关结果可回放,呵呵。
一般讨论华容道游戏的时候大家描述方法不通,结果很混乱,但是如果能够看到整个解题过程就不会有这个问题了。
你可以到打开下面两个结果试试看:
横刀立马81步解法
小燕出巢137步解法

或者,到这里看看所有的过关记录:
华容道 - 所有的过关记录

华容道游戏简介(以后写个全资料篇):

你知道智力游戏界的三大不可思议吗?
它指的是中国的“华容道”, 法国的“独立钻石”和匈牙利的“魔方”。

华容道,古老的中国游戏,以其变化多端、百玩不厌的特点与七巧板、九连环合称“中国的难题”。

华容道游戏取自著名的三国故事,曹操在赤壁大战中被刘备和孙权的“苦肉计”、“火烧连营”打败,被迫退逃到华容道,又遇上诸葛亮的伏兵,关羽为了报答曹操对他的恩情,明逼实让,终于帮助曹操逃出了华容道。游戏就是依照“曹瞒兵败走华容,正与关公狭路逢。只为当初恩义重,放开金锁走蛟龙”这一故事情节。

说明与规则
1. “华容道”有一个带二十个小方格的棋盘,代表华容道。
  棋盘下方有一个两方格边长的出口,是供曹操逃走的。
2. 棋盘上共摆有十个大小不一样的棋子
  它们分别代表曹操、张飞、赵云、马超、黄忠和关羽,还有四个卒。
3. 通过移动各个棋子,不允许跨越棋子,帮助曹操从初始位置移到棋盘最下方中部,从出口逃走。
4. 一个棋子的多次连续移动只计一次移动次数

“华容道”有几十种布阵方法,如“横刀立马 ”、“近在咫尺”、“过五关”、“水泄不通”、“小燕出巢”等等玩法。棋盘上仅有两个小方格空着,玩法就是通过这两个空格移动棋子,用最少的步数把曹操移出华容道。这个玩具引起过许多人的兴趣,大家都力图把移动的步数减到最少。

大多数在100步以内搞定都是很困难的,最简单的是第44关(iPhone关卡1)。
这关我玩了两遍(动态回放记录),最快用了50步,感觉应该可以在40步左右搞定的。

呵呵,点击这里挑战一下不可思议的华容道吧。

欢迎任何意见和建议。

主要的开局是比较著名的那些,如下
横刀立马, 指挥若定, 将拥曹营, 齐头并进, 兵分三路, 雨声淅沥, 左右布兵, 桃花园中,
一路进军, 一路顺风, 围而不歼, 捷足先登, 插翅难飞, 守口如瓶1, 守口如瓶2,
双将挡路, 横马当关, 层层设防1, 层层设防2, 兵挡将阻, 堵塞要道, 瓮中之鳖,
层峦叠嶂, 水泄不通, 四路进兵, 入地无门, 勇闯五关, 乱石崩云, 背水列阵,
四面楚歌, 前呼后拥, 兵临曹营, 五将逼宫, 云遮雾障, 三军联防, 前挡后阻,
近在咫尺, 走投无路, 小燕出巢, 比翼横空, 夹道藏兵, 屯兵东路, 四将连关

  • Share/Bookmark

« 上一页下一页 »