Java贪吃蛇源码Word文件下载.docx

上传人:b****5 文档编号:21278127 上传时间:2023-01-29 格式:DOCX 页数:6 大小:16.48KB
下载 相关 举报
Java贪吃蛇源码Word文件下载.docx_第1页
第1页 / 共6页
Java贪吃蛇源码Word文件下载.docx_第2页
第2页 / 共6页
Java贪吃蛇源码Word文件下载.docx_第3页
第3页 / 共6页
Java贪吃蛇源码Word文件下载.docx_第4页
第4页 / 共6页
Java贪吃蛇源码Word文件下载.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

Java贪吃蛇源码Word文件下载.docx

《Java贪吃蛇源码Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java贪吃蛇源码Word文件下载.docx(6页珍藏版)》请在冰豆网上搜索。

Java贪吃蛇源码Word文件下载.docx

//蛇的节数

intfood[];

//食物数组

booleanresult=true;

//判定结果是输还是赢

Threadthread;

//定义线程

staticintweix,weiy;

//食物位置

booleant=true;

//判定游戏是否结束

intfangxiang=0;

//蛇移动方向

intx=0,y=0;

//蛇头位置

MyPanel()

setLayout(null);

snake=newButton[20];

food=newint[20];

thread=newThread(this);

for(intj=0;

j<

20;

j++)

food[j]=(int)(Math.random()*99);

//定义20个随机食物

weix=(int)(food[0]*0.1)*60;

//十位*60为横坐标

weiy=(int)(food[0]%10)*40;

//个位*40为纵坐标

for(inti=0;

i<

i++)

snake[i]=newButton();

add(snake[0]);

snake[0].setBackground(Color.black);

snake[0].addKeyListener(this);

//为蛇头添加键盘监视器

snake[0].setBounds(0,0,10,10);

setBackground(Color.cyan);

publicvoidrun()//接收线程

while(t)

if(fangxiang==0)//向右

try

x+=10;

snake[0].setLocation(x,y);

//设置蛇头位置

if(x==weix&

&

y==weiy)//吃到食物

shu++;

weix=(int)(food[shu]*0.1)*60;

weiy=(int)(food[shu]%10)*40;

repaint();

//重绘下一个食物

add(snake[shu]);

//增加蛇节数和位置

snake[shu].setBounds(snake[shu-1].getBounds());

thread.sleep(100);

//睡眠100ms

catch(Exceptione){}

elseif(fangxiang==1)//向左

x-=10;

y==weiy)

elseif(fangxiang==2)//向上

y-=10;

elseif(fangxiang==3)//向下

y+=10;

intnum1=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;

num1--;

if(x<

0||x>

=this.getWidth()||y<

0||y>

=this.getHeight())//判断是否撞墙

intnum=shu;

while(num>

0)//设置蛇节位置

snake[num].setBounds(snake[num-1].getBounds());

num--;

if(shu==15)//如果蛇节数等于15则胜利

result=true;

publicvoidkeyPressed(KeyEvente)//按下键盘方向键

if(e.getKeyCode()==KeyEvent.VK_RIGHT)//右键

if(fangxiang!

=1)//如果先前方向不为左

fangxiang=0;

elseif(e.getKeyCode()==KeyEvent.VK_LEFT)

{if(fangxiang!

=0)

fangxiang=1;

elseif(e.getKeyCode()==KeyEvent.VK_UP)

=3)

fangxiang=2;

elseif(e.getKeyCode()==KeyEvent.VK_DOWN)

=2)

fangxiang=3;

publicvoidkeyTyped(KeyEvente)

publicvoidkeyReleased(KeyEvente)

publicvoidpaint(Graphicsg)//在面板上绘图

intx1=this.getWidth()-1;

inty1=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("

GAMEOVER!

"

250,200);

//输出游戏失败

elseif(t==false&

result==true)

YOUWIN!

//输出游戏成功

classMyWindowextendsFrameimplementsActionListener//自定义窗口类

MyPanelmy;

Buttonbtn;

Panelpanel;

MyWindow()

super("

GreedSnake"

);

my=newMyPanel();

btn=newButton("

begin"

panel=newPanel();

btn.addActionListener(this);

panel.add(newLabel("

begin后请按Tab键选定蛇"

));

panel.add(btn);

按上下左右键控制蛇行动"

add(panel,BorderLayout.NORTH);

add(my,BorderLayout.CENTER);

setBounds(100,100,610,500);

setVisible(true);

validate();

addWindowListener(newWindowAdapter()

publicvoidwindowClosing(WindowEvente)

System.exit(0);

});

publicvoidactionPerformed(ActionEvente)//按下begin按钮

if(e.getSource()==btn)

my.thread.start();

//开始线程

my.validate();

catch(Exceptionee){}

}

 

//文件名保存为:

GreedSnake.java

WelcomeTo

Download!

!

欢迎您的下载,资料仅供参考!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1