Send As SMS

2005-06-03

推箱子游戏

最近比较闲,比较闲,没事干的时候真是很郁闷阿。于是,就想起我手机上的一款"推箱子"的游戏,还有很多的关是很难过的,何不编写一个程序,让计算机去帮我过这些关呢?也算是联系一下自己的算法思维吧。这篇Blog就是我对这个过程的一个纪录。

编写这个程序并让他跑起来,倒也不算花太多的时间,大约4-5个小时,终于可以成功的跑完这个程序了,真不错,很快的,就帮我过了1关。在此过程中,虽然 碰到了一些问题,但总算是能够快速的解决掉。而且,由于一开始,我并没有进行任何的设计,虽然总体的代码数不多,就2个文件,4-5个类,总数大约400 -500行Java源代码,这个时候也适当的进行了一下重构,整个系统的结构也变得稍许合理一些。

然而,在过下一关时,就碰到麻烦了,让这个程序跑了2个小时,计算步子也超过了2千万次以上,还没有跑出来。说实在的,对这个计算的复杂性到底有多大,我实在是没有一个计算的方法,但感觉是2个小时也跑不出来的话,这个算法应该是存在着较大的问题的。

然后尝试着对其进行分析,但很难找到出发点,没办法,又给这个程序添加上一个GUI,可以动态的显示出推箱子的状态显示,这个时候,终于发现,在一种特定 的情况下,让人眼来判断,基本上是一目了然,可以判定无法继续下去的情况,但这个算法不能对其检测出来,还在尝试对剩下的箱子进行各种可能的移动,天啊, 这可真是一个很大的计算量,而且,会即位高度的进行重复。

未完 - 待续。 有时间的话,我会把这个算法详细的描述出来,在Blog上发布。


0 Comments:

张贴评论

<< Home