华容道
引言
七巧板、九连环、华容道,都是耳熟能详的中华传统玩具。九连环一旦掌握定式,神秘感顿失,相比之下华容道变化多一些。但是华容道究竟有多少种布局?随便摆设的布局是否有解?解开一局最少需要几步?这些通常是人们初次接触华容道时,心里的疑问。
一、游戏起源
华容道一直被看作是中华传统益智玩具,但是该玩具的历史似乎并不长,普遍认为该玩具出现于 20 世纪早期,中文文献最早提及该玩具是在民国时期。在西方,19世纪末,流行一种由15个木制滑块组成的游戏,叫做 “Puzzle 15”,被西方国家看作是华容道的前身。几经变换,华容道玩具于 1934 年在英格兰,由 John H. Fleming 申请了专利。
令人感到神奇的是,该玩具在不同的国家和地区都存在本地化版本,这也令游戏的起源有些扑朔迷离。例如:
1991年,该游戏以Klotski的名字——源自 Polish Klocki(光滑木块)———收录在 Windows 3.1 版本的娱乐游戏中。
尽管该玩具在不同国家地区被赋予了不同的背景故事,但应该说中华传统华容道与“关云长义释曹操”这一典故结合得堪称完美。“横刀立马”布局中仅仅关羽是横向放置,看似最大的障碍,实则明追暗放。而该布局的最优解法是八十一步,给这款游戏又增加了几分神秘。
二、游戏介绍
中华传统华容道是,如图所示,一共有十个滑块,分为三种:
游戏的目标:把最大的滑块“曹操”移动到棋盘最底部的正中央,那里意味着出口,表示曹操逃出蜀兵的围追堵截。
华容道游戏有很多布局,往往根据各自特点被以成语或俗语命名,最经典的布局就上上文提及的“横刀立马”。
三、游戏布局
将十个滑块全部摆放在棋盘中,共有 363480 种摆放方法。考虑到做为游戏布局,应去除如下几类:
这 121285 种布局中,从结构上看,一横至全横、全竖局,依次有:23623,37861,38467,14594,3999,2741种。
但这其中依然有大量的冗余,比如在连通的区域内放置多个卒,排列组合会产生多种布局,但我们知道其实只是一种布局的衍生。
四、关于本站
本站遍历了所有有效布局的最优解法。
1、布局表示
对于华容道布局的表示,本站把棋盘看做由四列五行的单元格构成,然后使用数字 0~4 表示各个单元格的内容。
2、解法数据表示
解法通过记录(坐标+移动)序列构成。
3、开放数据API
GET https://klotski.online/solution?t=1&q={布局表示}
如,横刀立马布局的查询:GET https://klotski.online/solution?t=1&q=24422442233221121001
,带有参数
t=1
表示仅返回解法数据,否则跳转到旧版的演示页面。
返回的解法数据为:24422442233221121001&u3w2o3p0r0z1y2q3o6tax5u0v9q3p6o6s1t1y4z4u3qfp2o2g7h0j0r5v5q2i7g2o5p0x5wcy4r3q3p6h3j4nar5v5u2tdl3hfg2o5p0m3i3j0n1v1y2q7o2g7h0i0m0j0r5p2l7h7g2o5t8w1y4z4q3p6o6s1xau0&0
以&
分隔为三部分
后续会将相关的代码整理后开源。
4、联系作者
未尽事项,不明之处可以联系作者 chufazheng@126.com,高兴与您交流。保持好奇心,祝你生活愉快!