java贪吃蛇实验报告Word下载.docx
- 文档编号:22309852
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:13
- 大小:19.72KB
java贪吃蛇实验报告Word下载.docx
《java贪吃蛇实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《java贪吃蛇实验报告Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
1.贪吃蛇是很经典的格子游戏。
所谓格子游戏就是在设计游戏时的主要思想是每个设对象都是由格子组成,游戏运行界面也是由格子组成。
格子思想决定了此类游戏在设计时的算法思想。
2.方向键控制一个方块的移动的方法,一个方块的移动是靠移动其坐标位置来实现的。
3.方向键控制是上下左右对一个方块的控制,用四个判断语句实现。
4.蛇的移动算法思想可以看成是第一个方块移动,第二个方块移到第一个方块的位置,第三个方块移动到第二个方块的位置?
?
第N个方块移动到第N-1个方块的位置。
这样连续的移动就是蛇
的移动了。
方向控制键控制了第一个方块的移动后,后面方块跟着移动,这样也实现了方向键控制对长蛇的移动。
5.食物的随机产生的方法食物的随机产生需要一个随机种子函数然后利用系统时间做为随机种子。
6.蛇的身体变长的方法当然要当蛇吃
到食物时才能使身体变长。
因此有两个需要解决的问题:
问题一:
如何知道是否吃到食物,问题二:
吃到食物后身体变长,解决问题一的方法是需要一个判断语句,当蛇头即构成蛇的第一个方块跟食物所在方块的坐标一样时判断吃到食物。
解决问题二则要相对复杂一些,需要多个判断语句构成。
7.游戏结束的方法,当蛇碰到边框时或者吃到自己时游戏结束。
根据这个思想可以用判断语句实现。
然后是游戏结束后的处理,比如显示继续玩游戏还是退出游戏,并显示所吃到的食物的个数和时间等。
三、系统设计
1.总体设计和个模块设计
importjavax.swing.*;
importjava.util.ArrayList;
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.FlowLayout;
importjava.awt.Font;
importjava.awt.Graphics;
importjava.awt.event.*;
publicclassSnakeextendsJFrame
{
finalstaticintWidth=340;
finalstaticintHeight=450;
finalstaticintnodeWidth=10;
finalstaticintnodeHeight=10;
//蛇身的坐标
staticintx;
staticinty;
//食物的坐标
staticintfx;
staticintfy;
staticArrayListNodesnakebody;
//设置蛇身
staticintkey;
staticintl;
staticintt;
staticintspeed;
staticTimertimer;
staticJLabelb=newJLabel(&
quot;
&
+l);
//计分数的
staticJFramesframe;
//框架
//设置蛇的坐标
publicstaticclassNode
intx;
inty;
ints;
Node(intx,inty)
this.x=x;
this.y=y;
}
//游戏面板
publicstaticclassGamepanelextendsJPanel
publicGamepanel()
JPanelo=newJPanel();
JLabela=newJLabel(&
SCORE&
);
o.add(a);
o.add(b);
o.setLayout(newFlowLayout(FlowLayout.LEFT,30,0));
add(o,BorderLayout.NORTH);
timer=newTimer(speed,newTimerListener());
timer.start();
protectedvoidpaintComponent(Graphicsg)
super.paintComponent(g);
//将游戏背景填充成白色
g.setColor(Color.WHITE);
g.fillRect(0,25,340,450);
switch(key)
case0:
eatfood(x,y+10);
y=y+10;
break;
case1:
eatfood(x,y-10);
y=y-10;
case2:
eatfood(x-10,y);
x=x-10;
case3:
eatfood(x+10,y);
x=x+10;
default:
;
snakebody.remove(snakebody.size()-1);
//模拟移动,头部加一个尾部减一个
//如果吃上食物,则重新产生食物
if(x==fx&
amp;
y==fy)
eatfood(fx,fy);
l++;
changefood();
//刷新时间
speed=80-(l/10)*10;
//使速度改变
timer.setDelay(speed);
//将蛇头和蛇身还有食物填充在白色的背景下
篇二:
Java程序设计报告《贪吃蛇》
《Java程序设计》
课程设计报告
贪吃蛇游戏的设计与实现
指导老师:
沈泽刚
计算机科学与技术
班级:
10-3
梁潇
一、课程设计目的
贪吃蛇游戏一款非常经典的手机游戏,因为它比较简单有趣,无
论老少都比较适合。
目的是更好地了解和掌握java语言,并熟练的运用java语言来实现项目。
培养自主学习的能力。
本软件在设计方面本着方便、实用及娱乐性高的宗旨,在外界
进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。
二、课程设计要求
贪吃蛇游戏设计与实现,主要分为以下二个模块:
游戏主界面模块、游戏控制模块。
三、课程设计报告内容
(一)系统设计
1、程序概述
本程序是一个利用Java应用软件制作的贪吃蛇小游戏。
在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运行方向;
当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。
本程序的另一个功能是在程序运行窗口的左上角显示,用户在游戏过程中所得的分数,不过缺点就是在退处程序后,下次打开程序时无法保存。
2、游戏的主界面设计
游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主
要包括游戏图形区域界面、游戏的速度选择更新界面、游戏分数的显示更新界面、游戏开始按钮、暂停游戏按钮、退出游戏按钮以及游戏排行榜按钮。
3、游戏控制模块设计
这个模块是游戏的中心环节,主要完成控制游戏的开始、暂停、退出等功能。
为了能够给玩家一个很好的游戏环境,这部分应该
做到易懂、易操作。
(二)主界面设计
游戏界面主框架主要包括游戏图形区域界面、游戏的开始
按钮、暂停按钮、游戏的退出按钮、困难程度、积分排行、关
于作者。
(三)代码设计
importjava.awt.Container;
importjava.awt.Toolkit;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.InputEvent;
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
publicclassTanChiSheextendsJFrameimplements
ActionListener,KeyListener,Runnable
privateJMenuBarmenuBar;
privateJMenu
youXiMenu,nanDuMenu,fenShuMenu,guanYuMenu;
private
JMenuItemkaiShiYouXi,exitItem,zuoZheItem,fenShuItem;
privateJCheckBoxMenuItemcJianDan,cPuTong,cKunNan;
privateintlength=6;
privateToolkittoolkit;
private
i,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()
{int
//***************创建新对象**************
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);
篇三:
疯狂贪吃蛇java实现课程设计报告
安阳工学院
计算机科学与信息工程学院
JAVA程序设计课程综合项目报告
项目题目:
专业班级:
学生姓名:
学生学号:
疯狂贪吃蛇11计科信息潘强201103020005
指导教师姓名:
许研
2013年12月
一、系统目标.............................................3
二、系统设计思路.........................................3
三、系统详细设计.........................................4
四、系统实现.............................................8
五、系统设计总结........................................14
六、参考文献............................................15
疯狂贪吃蛇
一、系统目标
运用java技术开发出贪吃蛇游戏,这个程序是用一个小矩形表
示蛇的一节身体,身体每长一节,增加一个矩形块。
移动时必须
从蛇头开始,也就是蛇尾不能改作蛇头。
当游戏者按了方向键后,
蛇头朝着指定的方向移动,一步移动一节身体。
图形的实现是从
蛇头的新位置开始画出蛇。
用户可以用上下左右键控制蛇头的方
向。
非常简单~
1.贪吃蛇游戏是大家很常见的小游戏,在生活工作之余大家可以玩它,已达到放松各种压力的目的。
二、系统设计思路
这样连续的移动就是蛇的移动了。
5.食物的随机产生的方法食物的随机产生需要一个随机种子函
数然后利用系统时间做为随机种子。
6.蛇的身体变长的方法当然要当蛇吃到食物时才能使身体变长。
三、系统详细设计
【类的设计】
1.创建的类的描述。
1.Login类,登陆界面要求输入登陆者输入用户名和密码,分别设Go和Cancel
2.SnakeFrame类,创建游戏窗口主界面。
采用图形界面设计,有窗体,菜单栏和游戏操作界面。
3.SnakeModel类,此类为蛇的初始化状态及模型,所有的游戏的开始都通过此类初始化及对蛇的操作。
4.
5.LocationRO类,随机生成的食物位置。
用来随机生成食物。
引导蛇的移动方向。
6.Location类,对蛇的位置的描述类。
2.类之间的调用关系。
1.登陆界面2.游戏主界面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 贪吃 实验 报告