Java程序设计报告《贪吃蛇》Word格式文档下载.docx

上传人:b****6 文档编号:18656573 上传时间:2022-12-31 格式:DOCX 页数:14 大小:52.87KB
下载 相关 举报
Java程序设计报告《贪吃蛇》Word格式文档下载.docx_第1页
第1页 / 共14页
Java程序设计报告《贪吃蛇》Word格式文档下载.docx_第2页
第2页 / 共14页
Java程序设计报告《贪吃蛇》Word格式文档下载.docx_第3页
第3页 / 共14页
Java程序设计报告《贪吃蛇》Word格式文档下载.docx_第4页
第4页 / 共14页
Java程序设计报告《贪吃蛇》Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Java程序设计报告《贪吃蛇》Word格式文档下载.docx

《Java程序设计报告《贪吃蛇》Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java程序设计报告《贪吃蛇》Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

Java程序设计报告《贪吃蛇》Word格式文档下载.docx

本程序的另一个功能是在程序运行窗口的左上角显示,用户在游戏过程中所得的分数,不过缺点就是在退处程序后,下次打开程序时无法保存。

2、游戏的主界面设计

游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的速度选择更新界面、游戏分数的显示更新界面、游戏开始按钮、暂停游戏按钮、退出游戏按钮以及游戏排行榜按钮。

3、游戏控制模块设计

这个模块是游戏的中心环节,主要完成控制游戏的开始、暂停、退出等功能。

为了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。

(2)主界面设计

游戏界面主框架主要包括游戏图形区域界面、游戏的开始按钮、暂停按钮、游戏的退出按钮、困难程度、积分排行、关于作者。

(3)代码设计

importjava.awt.Color;

importjava.awt.Container;

importjava.awt.Graphics;

importjava.awt.Toolkit;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.InputEvent;

importjava.awt.event.KeyEvent;

importjava.awt.event.KeyListener;

importjavax.swing.*;

publicclassTanChiSheextendsJFrameimplementsActionListener,KeyListener,Runnable

{

privateJMenuBarmenuBar;

privateJMenuyouXiMenu,nanDuMenu,fenShuMenu,guanYuMenu;

privateJMenuItemkaiShiYouXi,exitItem,zuoZheItem,fenShuItem;

privateJCheckBoxMenuItemcJianDan,cPuTong,cKunNan;

privateintlength=6;

privateToolkittoolkit;

privateinti,x,y,z,objectX,objectY,object=0,growth=0,time;

privateintdifficult=2;

privateintm[]=newint[50];

privateintn[]=newint[50];

privateThreadshe=null;

privateintlife=0;

privateintfoods=0;

privateintfenshu=0;

publicvoidrun()//运行

time=500;

for(i=0;

i<

=length-1;

i++)

{

m[i]=90-i*10;

n[i]=60;

}

x=m[0];

y=n[0];

z=4;

while(she!

=null)

{

check();

try

she.sleep(time);

catch(Exceptionee)

System.out.println(z+"

"

);

}

publicTanChiShe()

//***************创建新对象**************

setVisible(true);

menuBar=newJMenuBar();

Containercon=getContentPane();

toolkit=getToolkit();

//**************游戏菜单对象*****************

youXiMenu=newJMenu("

游戏"

kaiShiYouXi=newJMenuItem("

开始游戏"

exitItem=newJMenuItem("

退出游戏"

//***************困难程度对象****************

nanDuMenu=newJMenu("

困难程度"

cJianDan=newJCheckBoxMenuItem("

简单"

cPuTong=newJCheckBoxMenuItem("

普通"

cKunNan=newJCheckBoxMenuItem("

困难"

//*****************分数菜单对象****************

fenShuMenu=newJMenu("

积分排行"

fenShuItem=newJMenuItem("

最高记录"

//****************关于对象*********************

guanYuMenu=newJMenu("

关于"

zuoZheItem=newJMenuItem("

关于作者"

//***************设置关于菜单*******************

guanYuMenu.add(zuoZheItem);

//****************设置困难程度菜单**************

nanDuMenu.add(cJianDan);

nanDuMenu.add(cPuTong);

nanDuMenu.add(cKunNan);

//******************设置分数菜单***************

fenShuMenu.add(fenShuItem);

//*****************设置游戏菜单****************

youXiMenu.add(kaiShiYouXi);

youXiMenu.add(exitItem);

//******************设置主菜单********************

menuBar.add(youXiMenu);

menuBar.add(nanDuMenu);

menuBar.add(fenShuMenu);

menuBar.add(guanYuMenu);

//*********************监听注册*****************

zuoZheItem.addActionListener(this);

kaiShiYouXi.addActionListener(this);

exitItem.addActionListener(this);

addKeyListener(this);

fenShuItem.addActionListener(this);

//*********************加快捷键********************

KeyStrokekeyOpen=KeyStroke.getKeyStroke('

O'

InputEvent.CTRL_DOWN_MASK);

kaiShiYouXi.setAccelerator(keyOpen);

KeyStrokekeyExit=KeyStroke.getKeyStroke('

X'

exitItem.setAccelerator(keyExit);

//*****************设置框架**********************

setJMenuBar(menuBar);

setTitle("

贪吃蛇"

setResizable(false);

setBounds(300,200,400,400);

validate();

setDefaultCloseOperation(EXIT_ON_CLOSE);

publicstaticvoidmain(Stringargs[])

newTanChiShe();

//******************菜单监听******************************

publicvoidactionPerformed(ActionEvente)

if(e.getSource()==kaiShiYouXi)

length=6;

life=0;

foods=0;

if(she==null)

she=newThread(this);

she.start();

elseif(she!

she=null;

she=newThread(this);

}

if(e.getSource()==exitItem)

System.exit(0);

if(e.getSource()==zuoZheItem)

JOptionPane.showMessageDialog(this,"

梁潇"

+"

\n\n"

if(e.getSource()==fenShuItem)

JOptionPane.showMessageDialog(this,"

最高记录为"

+fenshu+"

//**************检查一下*******************************

publicvoidcheck()

isDead();

if(she!

if(growth==0)

reform();

else

upgrowth();

if(x==objectX&

&

y==objectY)

object=0;

growth=1;

toolkit.beep();

//****************产生食物坐标**********************

if(object==0)

object=1;

objectX=(int)Math.floor(Math.random()*39)*10;

objectY=(int)Math.floor(Math.random()*29)*10+50;

this.repaint();

voidisDead()

if(z==4)

x=x+10;

elseif(z==3)

x=x-10;

elseif(z==2)

y=y+10;

elseif(z==1)

y=y-10;

if(x<

0||x>

390||y<

50||y>

390)

for(i=1;

length;

if(m[i]==x&

n[i]==y)

publicvoidupgrowth()

if(length<

50)

length++;

growth--;

time=time-10;

life+=100;

if(fenshu<

life)

fenshu=life;

foods++;

publicvoidreform()

for(i=length-1;

i>

0;

i--)

m[i]=m[i-1];

n[i]=n[i-1];

m[0]=m[0]+10;

if(z==3)

m[0]=m[0]-10;

if(z==2)

n[0]=n[0]+10;

if(z==1)

n[0]=n[0]-10;

publicvoidkeyPressed(KeyEvente)

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

if(z!

=2)

z=1;

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

=1)

z=2;

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

=4)

z=3;

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

=3)

publicvoidkeyReleased(KeyEvente)

//TODO自动生成方法存根

publicvoidkeyTyped(KeyEvente)

publicvoidpaint(Graphicsg)

//*******************画图**********************

g.setColor(Color.DARK_GRAY);

g.fillRect(0,50,400,400);

g.setColor(Color.pink);

g.fillRect(m[i],n[i],10,10);

g.setColor(Color.green);

g.fillRect(objectX,objectY,10,10);

g.setColor(Color.white);

g.drawString("

当前分数"

+this.life,6,60);

当前已吃食物数"

+this.foods,6,72);

}

(4)测试

(5)使用说明

同时,游戏可以使用快捷键,Ctrl+O为开始游戏,Cirl+X为退出游戏。

4、总结(心得体会)

在设计过程中遇到一些问题,在游戏过程中,左上角显示所得的分数,不过缺点就是在退处程序后,下次打开程序时无法保存。

整个设计过程是不断学习,不断发现问题、分析问题、解决问题的过程。

使我受益良多。

设计期间有很多感触,想法,对以后的学习、工作有很大的益处。

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

当前位置:首页 > 经管营销

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

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