public void run() { //刷新面板线程 Thread t2=new Thread(yd); t2.start(); while(true){
try {Thread.sleep(10);}
catch (InterruptedException e) {e.printStackTrace();} this.repaint(); }}}
class yidong implements Runnable{ //蛇移动线程
int maxsum=128,sum=4,x[]=new int[maxsum],y[]=new int[maxsum],kaishi=1; //sum:代表蛇的总共长度是sum-1
int fx=1,nfx,sp=20,i=0,yanchi=200,fenshu;//方向 fx :4=← 6=→ 8=↑ 2=↓ 其余:无移动 int swx=0,swy=0,shiwu=0; String lv=\
Random sj=new Random(); @Override
public void run() {
x[0]=100;y[0]=100;//初始化蛇坐标 while(true){
try {Thread.sleep(yanchi);}
catch (InterruptedException e) {e.printStackTrace();} if(shiwu==0){//随机产生食物 swx=(sj.nextInt(10)+1)*20; swy=(sj.nextInt(10)+1)*20; shiwu=1; }
if(kaishi==1){fenshu=sum*100-400;}//分数计算 for(int i=sum-1;i>0;i--){//身体坐标刷新 x[i]=x[i-1]; y[i]=y[i-1]; }
if(fx==6&&nfx!=4){//方向判断 x[0]+=sp;//移动 nfx=6;
}else if(fx==4&&nfx!=6){x[0]-=sp;nfx=4;} else if(fx==2&&nfx!=8){y[0]+=sp;nfx=2;} else if(fx==8&&nfx!=2){y[0]-=sp;nfx=8;} else{if(nfx==6){x[0]+=sp;}
if(nfx==4){x[0]-=sp;} if(nfx==2){y[0]+=sp;} if(nfx==8){y[0]-=sp;}} if(x[0]>270){x[0]-=sp;} if(x[0]<0){x[0]+=sp;} if(y[0]>255){y[0]-=sp;} if(y[0]<0){y[0]+=sp;}
if(x[0]>swx-5&&x[0] if(sum==10){yanchi=180;lv=\加速 if(sum==20){yanchi=160;lv=\ if(sum==30){yanchi=150;lv=\ if(sum==40){yanchi=140;lv=\ if(sum==50){yanchi=130;lv=\ } for(int i=sum-1;i>0;i--){//判断蛇是否吃到自己 if(x[0]>x[i]-5&&x[0] sp=0; yanchi=500; kaishi=0; } } } } } 第七:心得体会 通过这次课程设计,我对这学期所学的JAVA语言程序设计有一个更深刻的了解,将所学的知识应用于实践,由于所学知识有限,为了使游戏能够实现自己预先的构想,我通过上网和去图书馆找程序,比较好的流程图及功能模块,不断阅读修改代码使程序达到预期所要实现的目标,完成课程设计后,可以感觉到自己对Java程序的又有了 新的认识。 在做Java设计之前也有做过其他的课程设计,大多规模很小。因为其各个模块间的联系十分紧密,代码重复执行率高,当经过无数次的调试、修改后,能最终看到成品,有无比自豪的心情。大学期间做过图书馆管理程序等简单的数据库管理系统的课程设计,思想大致相似,变化范围有限,没有太多自己可发挥的余地。综合运用以前所学习的知识,设计一个JAVA手机游戏,并能实现以下的功能:游戏暂停、游戏重新开始、游戏的结束。 总之,通过本次的课程设计,使我平时学到的理论知识得到了很好地升华,理论与实际得到一次很好的结合,为我今后参加工作打下了坚实的基础,使我受益匪浅。