?? snake.java
字號:
import java.awt.*;import java.applet.*;import java.applet.Applet;public class snake extends Applet implements Runnable { Image dot[]=new Image[400]; Image back; Image offI; Graphics offG; int x[]=new int[400]; int y[]=new int[400]; int rtemp=1; int game=1; int count=0; int score=0; int add=1; int level,z,n; Button level1=new Button("初級"); Button level2=new Button("中級"); Button level3=new Button("高級"); Button level4=new Button("專家級"); String stemp; String s,t; boolean go[]=new boolean[400]; boolean left=false; boolean right=false; boolean up=false; boolean down=false; boolean started=false; Thread setTime; public void init(){ add(level1); add(level2); add(level3); add(level4); setBackground(Color.black); back=getImage(getCodeBase(),"screan.gif"); for(z=0;z<400;z++){ dot[z]=getImage(getCodeBase(),"dot.gif"); } } public void update(Graphics g){ Dimension d=this.size(); if(offI==null){ offI=createImage(d.width,d.height); offG=offI.getGraphics(); } offG.clearRect(0, 0, d.width, d.height); paint(offG); g.drawImage(offI,0,0, null); } public void paint(Graphics g){ g.drawImage(back, 0, 0, this); g.setColor(Color.white); if(started){ g.setFont(new Font("TimesRoman",1,12)); t="分?jǐn)?shù)"+score+""; g.drawString(t, 75, 220); } if(game==1){ g.setFont(new Font("TimesRoman",1,13)); s="游戲模式選擇"; g.drawString(t, 65, 30); level1.move(75, 50); level2.move(75, 90); level3.move(75, 130); level4.move(70, 170); } if((game==2)||(game==3)){ if(!started){ g.setFont(new Font("TimesRoman",1,13)); t="用方向鍵移動!"; g.drawString(t, 5, 215); } for(z=0;z<=n;z++){ g.drawImage(dot[z], x[z], y[z], this); } if(game==3){ g.setFont(new Font("TimesRoman",1,13)); s="游戲結(jié)束"; g.drawString(s, 65, 60); } } public void run(){ for(z=4;z<400;z++){ go[z]=true; x[z]=91; y[z]=91; } n=3; game=2; score=0; level1.move(70, -100); level2.move(70, -100); level3.move(70, -100); level4.move(70, -100); left=false; right=false; up=false; down=false; locateRandom(4); while(true){ if(game==2){ if((x[0]==x[n])&&(y[0]==y[n])){ go[n]=true; locateRandom((n+1)); score+=add; } for(z=399;z>0;z--){ if(go[z]){ x[z]=x[(z-1)]; y[z]=y[(z-1)]; if((z>4)&&(x[0]==x[z])&&(y[0]==y[z])){ game=3; } } } if(left){ x[0]-=10; } if(right){ x[0]+=10; } if(up){ x[0]-=10; } if(down){ x[0]+=10; } } if(y[0]>191){ y[0]=191; game=3; } if(y[0]<1){ y[0]=1; game=3; } if(x[0]>191){ x[0]=191; game=3; } if(x[0]<1){ x[0]=1; game=3; } if(game==3){ if(count<(1500/level)){ count++; } else{ count=0; game=1; repaint(); setTime.stop(); } } repaint(); try{ Thread.sleep(level); }catch(InterruptedException e){ } } } public void locateRandom(int turn){ rtemp=(int)(Math.random()*20); x[turn]=((rtemp*10)+1); rtemp=(int)(Math.random()*20); y[turn]=((rtemp*10)+1); n++; } public boolean keyDown(Event e,int key){ if((key==Event.LEFT)&&(!right)){ left=true; up=false; down=false; if(!started) started=true; } if((key==Event.RIGHT)&&(!left)){ right=true; up=false; down=false; if(!started) started=true; } if((key==Event.UP)&&(!down)){ up=true; left=false; right=false; if(!started) started=true; } if((key==Event.DOWN)&&(!up)){ up=true; left=false; right=false; if(!started) started=true; } return true; } public boolean action(Event event,Object obj){ stemp=(String)obj; if(stemp.equals("初級")){ add=2; level=100; setTime=new Thread(this); setTime.start(); return true; } if(stemp.equals("中級")){ add=5; level=70; setTime=new Thread(this); setTime.start(); return true; } if(stemp.equals("高級")){ add=10; level=40; setTime=new Thread(this); setTime.start(); return true; } if(stemp.equals("專家級")){ add=20; level=20; setTime=new Thread(this); setTime.start(); return true; } return false; }}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -