⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snake.java

📁 吃豆游戏
💻 JAVA
字号:
import java.awt.*;
import java.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 level;
int z;
int n;
int count=0;
int score=0;
int add=1;

Button b= new Button("Beginner");
Button i= new Button("Intermediate");
Button p= new Button("Professional");
Button X= new Button("Xtreamest");

String stemp;
String s;
String t;

boolean go[]=new boolean[400];
boolean left=false;
boolean right=false;
boolean up=false;
boolean down=false;
boolean started=false ;
boolean me=false;

Thread setTime;

public void init() 
{
add(b);
add(i);
add(p);
add(X);
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("Verdana", 1, 12));
t = "Score "+score+"";
g.drawString(t, 75, 220);
}

if(game==1) 
{ 
g.setFont(new Font("Arial", 1, 13));
s = "Set Mode";
g.drawString(s, 65, 30);

b.move(75, 50); 
i.move(68, 90);
p.move(68, 130);
X.move(73, 170);
}

if((game==2)||(game==3))
{
if(!started)
{
g.setFont(new Font("Verdana", 1, 11));
t = "Use the key board arrows to move!";
g.drawString(t, 5, 215);
}
for (z=0 ; z <= n ; z++){  g.drawImage(dot[z],x[z],y[z],this);  }
me=true;
}

if(!me)
{
g.setFont(new Font("Verdana", 1, 11));
t = "by ali";
g.drawString(t, 5, 215);  
}

if(game==3)
{
g.setFont(new Font("Verdana", 1, 13));
s="Game Over";
g.drawString(s, 65, 60);
}

}

public void run()
{
for(z=4 ;z <400 ; z++) { go[z]=false;}
for(z=0 ; z<4 ; z++) { go[z]=true;x[z]=91;y[z]=91;}
n=3;
game=2;
score=0;
b.move(70, -100);
i.move(70, -100);
p.move(70, -100);
X.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){ y[0]-=10; }
if(down){ y[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{setTime.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; right = false; left = false;if(!started)started=true;}
if ((key == Event.DOWN) && (!up)){down = true; right = false; left = false;if(!started)started=true;}
return true;
}

public boolean action(Event event, Object obj)
{
stemp = (String) obj;

if(stemp.equals("Beginner"))
{
add=2;
level=100;
setTime = new Thread(this);
setTime.start();
return true;
}

if(stemp.equals("Intermediate"))
{
add=5;
level=70;
setTime = new Thread(this);
setTime.start();
return true;
}

if(stemp.equals("Professional"))
{
add=10;
level=40;
setTime = new Thread(this);
setTime.start();
return true;
}

if(stemp.equals("Xtreamest"))
{
add=20;
level=20;
setTime = new Thread(this);
setTime.start();
return true;
}
return false;
}                      
}








⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -