java语言编写贪吃蛇思路,请大家帮帮忙,感恩!

用链表写?线程?不熟!可以写类,再调方法?

楼主没有看到蛇移动的本质,蛇虽然是分成很多块,但他们还是一个整体,每一块的移动都和上一块有关,所以不需要对每一块都进行判断。
原理:
把蛇身体的每一块看成一个对象(对象存储该块的坐标和相关信息),作为节点存储在线性链表中,再设置一个变量标志蛇的方向(通过按键可以改变)。一般人都是让每一个节点等于他指向的下一个节点,并让头节点改变位置来实现转弯和移动,这个算法复杂度太高(O(n)),实际上只要做两步操作,插入一个头节点,删除一个尾节点就可以了,新插入的头节点位置根据蛇当前的方向决定 用一个数组将蛇头的行径记录下来,然后第二段的下一个方格设置为蛇头走过的方格,这样子蛇走过的路径都是前一段走过的,最后将跟着蛇头走了,比如
蛇身的路径
for(int i=snakeLength-1;i>0;i--){
rows[i]=rows[i-1];//依次将蛇前面一段走过行的路段赋值给蛇的下一段
cols[i]=cols[i-1];//依次将蛇前面一段走过列的路段赋值给蛇的下一段
}
for(int i=1;i<snakeLength;i++){
gamePanel[rows[i]][cols[i]].setBackground(Color.red);//将整个面板上蛇身走过的行和列设置为不同的颜色,当然可以用图片来设置
}
蛇头走过的行和列(rows[0],cols[i])要根据不同的方向加减1来将面板设置成不同的颜色
如gamePanel[rows[i]-1][cols[i]+1].setBackground(Color.red)
忘采纳。。。。。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-22
Swing写是吧
做一个线性集合。通过方向键增删节点,走一步删除为节点,添加头节点,别的都太简单了本回答被提问者采纳
第2个回答  2012-11-22
线程重复绘图
第3个回答  2012-11-22
好好控制重绘

Java 编写贪吃蛇游戏的大体思路是什么?
\\x0d\\x0a原理:\\x0d\\x0a把蛇身体的每一块看成一个对象(对象存储该块的坐标和相关信息),作为节点存储在线性链表中,再设置一个变量标志蛇的方向(通过按键可以改变)。一般人都是让每一个节点等于他指向的下一个节点,并让头节点改变位置来实现转弯和移动,这个算法复杂度太高(O(n)),实际上只要做两步操作,...

如何用Java语言写一个贪吃蛇游戏
设计游戏,首先就要设计界面。首先看一下我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏...

谁帮我写个java贪吃蛇游戏全面的包括得分等功能!谢谢!希望大家帮帮忙...
package snake;import javax.swing.UIManager;import java.awt.*;\/ Title: 贪食蛇游戏 Description: Copyright: Copyright (c) 2005 Company: author zsb version 1.0 \/ public class Snake { private boolean packFrame = false;\/\/Construct the application public Snake() { MainFrame frame = n...

谁会用java编写“贪吃蛇”小游戏
Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10; \/\/用比较笨的方法添加了 Button b11,b12,b13,b14,b15,b16,b17,b18; \/\/30个按钮来实现游戏界面 Button b19,b20,b21,b22,b23,b24,b25; \/\/可以用数组实现,这是本人 Button b26,b27,b28,b29,b30,bc; \/\/学java时,入门的联系,所以 Button ...

用Java语言做贪吃蛇,随机出现的豆 会出现在蛇身上怎么解决?蛇头能回 ...
>>豆 每次生成豆后,判断是不是在蛇身上,是的话重新生成。这种方案不是完美的。但是我之前就是这么做的,没问题 >>蛇头 当前蛇的前进方向你应该知道。可以定义:0左,1右,2上,3下 得到用户的方向键输入,判断如果跟蛇头方向相反就忽略。

我想求一个Java编写的贪吃蛇游戏,要有注释和流程图最好
用MVC方式实现的贪吃蛇游戏,共有4个类。运行GreedSnake运行即可。主要是观察者模式的使用,我已经添加了很多注释了。1、\/* * 程序名称:贪食蛇 * 原作者:BigF * 修改者:algo * 说明:我以前也用C写过这个程序,现在看到BigF用Java写的这个,发现虽然作者自称是Java的初学者, * 但是明显编写程序的素养不错,程序结...

JAVA 学习多长时间能做出像贪吃蛇这样的小程序
首先需要的是Java基础 然后要弄明白面向对象的思想, 因为一个类也能做出来, 但是看着非常不好看, 而且不容易维护.再就是学集合类, 贪食蛇用集合类来保存(比如链表)比较快, 操作起来也比较容易.之后就是Java图形界面, AWT 和Swing 都可, 要会用JFrame的 paint方法, 不要用按钮组来模拟蛇的样子, ...

c语言 贪吃蛇 程序
include <conio.h> include <windows.h> define BEG_X2 define BEG_Y1 define WID20 define HEI20 HANDLE hout;typedef enum {UP, DOWN, LEFT, RIGHT} DIR;typedef struct Snake_body { COORD pos;\/\/蛇身的位置 struct Snake_body *next;\/\/下一个蛇身 struct Snake_body *prev;\/\/前一个...

贪吃蛇 电脑高手请进!
这个不是语言的问题,而是算法的问题,也就是这个软件的设计思路的问题。学语言和写游戏不完全是一个概念,游戏有游戏的设计规则。不要因此对C失望。

用java制作十款小游戏,边玩边学!
五、俄罗斯方块讲解俄罗斯方块游戏的编写流程,适合Java初学者,主要涉及Java的基础知识如变量、数组、循环结构等,同时加深对Java基础知识的理解。六、贪吃蛇贪吃蛇游戏的完整编写流程讲解,适合Java新手,主要涉及Java的基础知识如变量、数据类型、循环结构等。七、飞机大战飞机大战游戏的详细编写流程讲解,适合...

相似回答