贪食蛇算法

前后学了半个月的J2ME,只做过通讯录,聊天室之类的,从没做过画布应用,所以就试着做了个贪食蛇。
WTK里面有个,但是代码有点多,也看不明白。所以只能自己想了。经过一个早上的努力,程序基本出来,现在总结下。

这个游戏主要需要注意4个地方,第一,蛇怎么运动;第二,碰撞检测;第三,长度增加;第四,运动方向。
对于蛇的运动,我的理解是,蛇头前进一步,则蛇身跟着蛇头运动的足迹运动。有点递归的意思,一开始想用递归算法的,但迫于能力,没能实现;所以我用一个二维数组来保存蛇的所有节的坐标,当蛇前进一步时,就用前一节的坐标来更新后一节的坐标,而蛇头的坐标则经过计算得到,这样蛇就可以根据蛇头运动的路径来运动了。

关于碰撞检测,只需接触蛇头的坐标是否超出边界,以及是否与二维数组中除了蛇头之外的任何一个坐标相同就行了。

对于长度增加的问题,我是将其加到蛇头,也就是把二维数组中的数据以此往后移动,在把二维数组的第一个值设成食物的坐标(也就是蛇头)。

运动方向,当所按下的运动方向合法时,则改变蛇头下一步的坐标。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值