移动箱子到空地、从目的地到空地、从空地到目的地、从目的地到目的地移动箱子。X、y指明小人的当前所处的位置,字符a表示移动的方向,有"u""d""r""l"四个值,分别表示向上、向下、向右、向左移动。这几个函数的实现原理大致相似。对于前面两个函数,首先判断移动的方向,从小人所处的位置沿着移动方向移动一步画小人,移动两步画箱子
(11) judge()
函数原型:
(12) move()
(13) 函数原型:judge()
(14) reset()
函数原型:void reset(int i)
Reset()函数的功能是重置当前关。该函数首先判断当前关是第几关,然后调用init()函数和初始化当前关的函数进行重置。
(15) main()
主函数首先设置寄存器AX的高位和低位,显示器软中断,进行显示状态的设置,初始化屏幕,初始化第一关,并显示欢迎信息。然后根据按下的键(bioskey(0)函数返回按下的键)进行处理,处理过程由move()函数进行(如果按下ESC键,则退出程序)。对于每一关,如果所有的表示目的地位置的状态都由"m"变为"i",则表示通过该关,可以进入下一关。