java 贪吃蛇思想

自己未看过别人的写了一个贪吃蛇,基本功能实现了可是食物产生没有做到,怎么样能更好的让食物产生的坐标不在蛇的坐标上,我产生食物的坐标有时会在蛇的坐标上还有判断是否吃到自己的... 自己未看过别人的写了一个贪吃蛇,基本功能实现了
可是食物产生没有做到,怎么样能更好的让食物产生的坐标不在蛇的坐标上,我产生食物的坐标有时会在蛇的坐标上

还有判断是否吃到自己的思想,那个我也写出来了,我是用一个二维数组来模拟地图,把蛇在面板上的坐标映射到二维数组中,蛇在二维数组中有位置的话就放1,否则放0,这样判断是否吃到自己,只要把尾巴放0,然后判断头移动后的地方是否为1,如果为1就是吃到自己了

想看看大家的思想,最主要的是随机产生食物不和蛇的坐标重复
呵呵 和我的差不多呀
我是把一个格子当成一个对象,里面存有在面板的坐标和在二维数组中的坐标
这样操作方便了很多

住要是产生食物的方法,不知道怎么样更有效率的产生不和蛇重复的坐标

----------------------------------
2L,你的产生食物的效率不行的,如果为1再重新随机产生,这个早就想到了,我想能不能通过什么计算,可以让它一次就产生不重复蛇的坐标

你用1维数组来保存,判断是否吃到自己,应该要遍历一遍吧?
我之所以用二维,虽然是占了内存,可是我判断是否吃到自己,一次遍历都不需要,所以也不存在访问效率低了
展开
 我来答
百度网友c49b5e065
2010-01-14 · 超过25用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:92.5万
展开全部
我不懂JAVA,但是我可以告诉你我用C++写过的贪吃蛇的思想;我定义一个2维数组里面存了一些点,即屏幕的坐标点,比如你要绘制一个正方形,你可以保存它的两个顶点坐标到数组里面,然后把你的窗口的坐标都保存起来,再定义一个2维数组,先全0,为1表示有方块,移动的时候就对这个数组里的数据进行操作,然后绘制到桌面上判断第二个数组的数值,是1的话到第一个数组相同的索引里面取出坐标然后绘制,这样可以少了很多复杂的问题,至于如何判断你得自己动动脑子了!
多思考才能收获。
GeassVV
2010-01-15 · TA获得超过133个赞
知道答主
回答量:58
采纳率:0%
帮助的人:84.6万
展开全部
按照你的思路 可以让食物的坐标随机产生 然后判断坐标中的数值是1还是0 是1 不就是和蛇的身体重复吗 然后再重新产生食物 循环判断 当是0时就是不在蛇的身体上时再显示食物

其实你把地图用二维数组表示很占资源的 你直接用一个数组来记录蛇的身体坐标不就能省下很多吗 我的是这样用的
int snake[maxLength]={头的X坐标,头的Y坐标,第二个节点的X坐标,第二个节点的Y坐标,...}
用一维数组而不是二维数组是因为一维数组的访问效率要比二维数组高。
蛇移动的时候只需要改变头的坐标,然后其他的整体后移就行了。在判定是否撞到自己或者墙壁时 只需要判断下一步时头的坐标是否等于身上其他点的坐标(从第四个点开始,因为蛇头不会撞到第二和第三个节点)和障碍墙壁的坐标
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式