最近買了一個叫做“華容道”的玩具給兒子晚。這個游戲雖然號稱是中國四大古典智力游戲之一。其實不過百年歷史,而且是從國外引進的。不過本地化做得非常好,也算是創造性地吸收國外文明。
手工解決這個游戲有點難度,當然已經有人給出了解法;不過我還是自己用編程的方式解決了一遍。發現自己在這方面的編程還是比較弱。大部分時間花在了調試上。
剛開始是用的深度優先搜索。大致知道了答案應該長什么樣。后來改進為廣度優先搜索,得到了最優的解法。還有一個就是原先只考慮每次最多移動一格。后來發現傳統的定義是一個塊的所有連續移動都算作一步。相應地修改了實現算法。
最難的是做界面。為了調試,隨便寫了個Applet。但是給我兒子玩,就覺得拿不出手了。