首页 > 编程知识 正文

java编写贪吃蛇原理(简单的贪吃蛇java代码)

时间:2023-05-04 11:14:20 阅读:1715 作者:3047

//drawNode():绘画某一结点(蛇身或食物)

//-

私有空绘图节点(图形g,节点n)

{

g.fillRect(n.x*nodeWidth,n.y*nodeHeight,nodeWidth-1,node height-1);

}

//-

//updateScore():改变计分牌

//-

public void updateScore()

{

字符串s='Score: '蛇模型。分数;[第页]

labelScore.setText

}

//-

//begin():游戏开始,放置贪吃蛇

//-

void begin()

{

如果(蛇模型==null||!snakeModel.running)

{

蛇模型=新蛇模型(这个,canvasWidth/nodewidth,

这个。canvasheight/node head);

(新线程(蛇形模型))。start();

}

}

//-

//main():主函数

//-

公共静态void main(字符串[]参数)

{

GreedSnake GS=new GreedSnake();

}

}

/**************************************************************************

*文件名:蛇模型。爪哇岛

*作者列车员:杰森

*要点分析:

*1)数据结构:矩阵[][]用来存储地图上面的信息,如果什么也没有设置为假的,

* 如果有食物或蛇,设置为真的;节点阵列,一个链接列表,用来保存蛇的每

* 一节;食物用来保存食物的位置;而结节类是保存每个位置的信息。

*2)重要函数:

*更改方向(内部新方向),用来改变蛇前进的方向,而且只是

* 保存头部的前进方向,因为其他的前进方向已经用位置来指明了。其中新方向

* 必须和原来的方向不是相反方向,所以相反方向的值用了同样的奇偶性。在测试

* 的时候使用了方向%2!=新方向%2进行判断。

* moveOn(),用来更新蛇的位置,对于当前方向,把头部位置进行相应改变。如果越界,

* 结束;否则,检测是否遇到食物(加头部)或身体(结束);如果什么都没有,加上头部,

* 去掉尾部。由于用了合框架数据结构,省去了相当多的麻烦。

*************************************************************************/

导入Java。乌提尔。*;

导入javax。摇摆。*;

//-

//Node:结点类

//-

节点类

{

int x;

int y;

节点(int x,int y)

{

this.x=x

this.y=y

}

}

//-

//蛇形模型:贪吃蛇模型

//-

类蛇模型实现了可追捕的

{

GreedSnake gs

布尔[][]矩阵;//界面数据保存在数组里

链表节点数组=新链表();

节点食物;

int maxX//最大宽度

int maxY//最大长度

(同Internationalorganizations)国际组织方向=2;//方向

布尔运行=假;

int timeInterval=200//间隔时间(速度)

double speedChangeRate=0.75//速度改变程度[第页]

布尔暂停=假;//游戏状态

(同Internationalorganizations)国际组织得分=0;

int计数移动=0;

//UP和向下是偶数对吧和左边的是奇数

公共静态最终int UP=2;

公共静态最终int DOWN=4;

公共静态最终int LEft=1;

public static final int RIGHT=3;

//-

//GreedModel():初始化界面

//-

公共蛇模型(GreedSnake gs,int maxX,int maxY)

{

this.gs=gs

this.maxX=maxX

this.maxY=maxY

matrix=new boolean[MaxX][];

for(int I=0;i20?10 : MaxX/2;

for(int I=0;我

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。