三个文件,楼主看好:
运行可以,但是并不能鼓吹是一个具有好的风格的代码,。
//文件一
packagegreedysnake_cx;
publicclassNode{
intx=0;
inty=0;
intnodewidth;
intnodeheight;
Node(intx,inty){
this.x=x;
this.y=y;
}
}
//文件二
packagegreedysnake_cx;
/**
*实现一个greedysnake的模型,具有功能:
*1)移动,moveOn()----从director参数中获取方向信息,如果方向定义的下一个点的逻辑值是true,检查是不是food,是则将food添加到
*
列表的头部,snake继续移动,不是则停止移动(撞到蛇尾巴了)
*2)加速,speedUp()----将现成的停滞时间间隔interval按照一定的比率speedRate进行扩大
*3)减速,speedDown()----....
*
*该类实现Runnable接口,
**/
//定义snake的模型
importjava.util.*;
importjavax.swing.*;
publicclassSnakeModelimplementsRunnable{
privateGreedSnakegs;
//给每一个矩阵点确立一个boolean值
boolean[][]matrix;
privateintmaxX;
privateintmaxY;
//设置一个节点的列表;
LinkedListnodeArray=newLinkedList();
Nodefood=null;
intdirection=UP;
intscore=0;
//定义方向
publicfinalstaticintLEFT=1;
publicfinalstaticintUP=2;
publicfinalstaticintRIGHT=3;
publicfinalstaticintDOWN=4;
privateintinterval=200;//停顿时间的间隔
booleanpause=false;//定义暂停
privatedoublespeedRate=0.5;//定义速度的变更幅度
//constructor
publicSnakeModel(GreedSnakegs,intmaxx,intmaxy){
this.gs=gs;
this.maxX=maxx;
this.maxY=maxy;
//this.matrix=null;
////////////////////////////////////////////////////////////////////