求"贪吃蛇"小游戏JAVA源代码一份 30

"贪吃蛇"小游戏JAVA源代码一份 要能运行的 一定要可以运行 有错误的发给我 我也不会改啊 拜托各位大大们 给我一份 最好带上注释 ! 谢谢 万分感谢啊!!!!
我有更好的答案
推荐于2017-11-26 18:20:42 最佳答案
/增加蛇节数和位置 
snake[shu].setBounds(snake[shu-1].setBounds(0; /,y=0; //向右
{
try
{
x+=10; //向上
{
try
{
y-=10;
repaint(); //
if(x==weix&&y==weiy)
{
shu++.1)*60;//.getBounds());
}
thread.sleep(100);定义蛇按钮
int shu=0.cyan);
if(x==weix&&y==weiy)
{
shu++;
add(snake[shu]);
snake[shu].setBounds(snake[shu-1];吃到食物
{
shu++;
weix=(int)(food[shu]*0.1)*60;
weiy=(int)(food[shu]%10)*40;
}

public void run() /.event, y).setLocation(x;为蛇头添加键盘监视器
snake[0].getBounds());
}
thread.sleep(100); /,Runnable//定义线程
static int weix,weiy;/主类
{

/**
* @param args
*/
snake[0].*;
if(x==weix&&y==weiy)
{
shu++;食物数组
boolean result=true; //20;i++)
{
snake[i]=new Button();/个位*40为纵坐标
for(int i=0;i<判定结果是输 还是赢
Thread thread; //.1)*60;/向左
{
try
{
x-=10;
snake[0].getBounds());
}

thread.sleep(100).awt;20;j++)
{
food[j]=(int)(Math.random()*99);定义20个随机食物
}

weix=(int)(food[0]*0.1)*60; //
public static void main(String[] args) {
//
snake[0];
snake=new Button[20];重绘下一个食物
add(snake[shu]);蛇移动方向
int x=0;十位*60为横坐标
weiy=(int)(food[0]%10)*40;/食物位置
boolean t=true; //
snake[0];
food=new int [20];
thread=new Thread(this);
weiy=(int)(food[shu]%10)*40;
repaint();
add(snake[shu]);
snake[shu].setBounds(snake[shu-1].getBounds());
}
thread.sleep(100);
}
catch(Exception e){}
}
int num1=shu;
while(num1>1)//判断是否咬自己的尾巴
{
if(snake[num1].getBounds().x==snake[0].getBounds().x&&snake[num1].getBounds().y==snake[0].getBounds().y)
{
t=false;
result=false;
repaint();
}
num1--;
}
if(x<0||x>=this.getWidth()||y<0||y>=this.getHeight())//判断是否撞墙
{
t=false;
result=false;
repaint();
}
int num=shu;
while(num>0) //设置蛇节位置
{
snake[num].setBounds(snake[num-1].getBounds());
num--;
}

if(shu==15) //如果蛇节数等于15则胜利
{
t=false;
result=true;
repaint();
}

}

}
public void keyPressed(KeyEvent e) //按下键盘方向键
{
if(e.getKeyCode()==KeyEvent.VK_RIGHT)//右键
{
if(fangxiang!=1)//如果先前方向不为左
fangxiang=0;

}
else if(e.getKeyCode()==KeyEvent.VK_LEFT)
{ if(fangxiang!=0)
fangxiang=1;

}
else if(e.getKeyCode()==KeyEvent.VK_UP)
{ if(fangxiang!=3)
fangxiang=2;

}
else if(e.getKeyCode()==KeyEvent.VK_DOWN)
{ if(fangxiang!=2)
fangxiang=3;

}
}

public void keyTyped(KeyEvent e)
{

}
public void keyReleased(KeyEvent e)
{

}
public void paint(Graphics g) //在面板上绘图
{
int x1=this.getWidth()-1;
int y1=this.getHeight()-1;
g.setColor(Color.red);
g.fillOval(weix, weiy, 10, 10);//食物
g.drawRect(0, 0, x1, y1); //墙
if(t==false&&result==false)
g.drawString("GAME OVER!", 250, 200);//输出游戏失败
else if(t==false&&result==true)
g.drawString("YOU WIN!", 250, 200);//输出游戏成功
}

}
class MyWindow extends Frame implements ActionListener//自定义窗口类
{
MyPanel my;
Button btn;
Panel panel;
MyWindow()
{
super("GreedSnake");
my=new MyPanel();
btn=new Button("begin");
panel=new Panel();
btn.addActionListener(this);
panel.add(new Label("begin后请按Tab键选定蛇"));
panel.add(btn);
panel.add(new Label("按上下左右键控制蛇行动"));
add(panel,BorderLayout.NORTH);
add(my,BorderLayout.CENTER);
setBounds(100,100,610,500);
setVisible(true);
validate();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)//按下begin按钮
{

if(e.getSource()==btn)
{
try
{
my.thread.start(); //开始线程
my.validate();
}
catch(Exception ee){}
}

}
}, y);
public class GreedSnake //蛇的节数
int food[]; //.1)*60;设置蛇头位置

if(x==weix&&y==weiy) //,10,10);
setBackground(Color;
snake[0];
}

add(snake[0]);
snake[0].setBackground(Color.black);
weiy=(int)(food[shu]%10)*40;
repaint(); /判定游戏是否结束
int fangxiang=0; ///睡眠100ms
}
catch(Exception e){}
}
else if(fangxiang==1)/
weiy=(int)(food[shu]%10)*40;
repaint();

}

}
class MyPanel extends Panel implements KeyListener.setLocation(x;/接收线程
{

while(t)
{

if(fangxiang==0)/.addKeyListener(this); //, y);
weix=(int)(food[shu]*0;

for(int j=0;j<, y);
}
catch(Exception e){}
}
else if(fangxiang==3)/
}
catch(Exception e){}
}
else if(fangxiang==2)///自定义面板类,继承了键盘和线程接口
{

Button snake[]; //
weix=(int)(food[shu]*0.setLocation(x.setLocation(x;
weix=(int)(food[shu]*0; TODO Auto-generated method stub
new MyWindow(),0;/蛇头位置
MyPanel()
{

setLayout(null);
add(snake[shu]);
snake[shu].setBounds(snake[shu-1];/向下
{
try
{
y+=10贪吃蛇
import java.awt.*;
import java; /

le1314ting

采纳率:24% 擅长: 数学

其他回答

嘿嘿..
好几个晚上才做出来的.我有......,怎么给你?
coldbloodxi | 发布于2008-11-15
评论
LZ 可以到 http://www.itcast.cn 下载版块去下,有视频教程和原代码,说的也不错
snakdde | 发布于2008-11-15
评论

为您推荐:

广告

您可能关注的内容

×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消