TA的每日心情 | 开心 2023-9-20 17:54 |
---|
|
楼主 |
发表于 2009-7-29 00:59:16
|
显示全部楼层
一个高智商的滚木头游戏 用键盘上的上下左右键操作,将木头掉入黑洞中。圆的机关碰到就起作用,叉的机关是必需...这一关很简单,木头滚到双半圆的地方,木头一分为二在左上角区,你只要组合成南中木头组合向上翻,会到上面中间地方
非常有趣,绝对耐玩的杀时间并消耗大量脑细胞的益智游戏!翻滚一块积木去钻地上的小洞洞,关卡越来越多,让你绞尽脑汁!方向键操作。
目前世界上没有人能过全关
寻路函数void StartRoll(int *come,WoodState *ws,WoodState *nws,int *end)
参数WoodState *ws表示木头的上一个状态
参数WoodState *nws表示木头当前的状态
它其实就是一个连续滚动木头的函数,并且在滚动过程中不断的判断生成的新状态是否存在,如果存在.则继续选择方向滚动.这里说一下方向问题.因为木头在某一状态下都存在4个方向可以滚动.所以在此处用随机函数来为寻路函数选取方向.另外木头从一个状态到另一个状态后,木头就有一个来的方向.也就是参数come在寻路函数中我们是通过木头当前的状态和它的上一个状态来计算判断得出来的方向的.所以在连续滚动木块的中间过程中,其实只有三个方向可以选择.当然在最开始寻路时木头的上一个状态和当前状态相等.木头来的方向被设置成-1是一个无效的方向值,这时木头可以选择的方向就有四个.也就是木头在最开始的位置会有四个方向可以滚动.
该函数是一个递归函数.当木头滚动成功时.就会木头的当前状态作为上一个状态.然后把生成的新状态作为当前状态.递归调用本函数来进行连续的寻路过程.
数学好的可以来看看,我是看不明白的 |
|