Java贪吃蛇游戏设计课程设计.docx
《Java贪吃蛇游戏设计课程设计.docx》由会员分享,可在线阅读,更多相关《Java贪吃蛇游戏设计课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
Java贪吃蛇游戏设计课程设计
存档资料成绩:
华东交通大学理工学院
课程设计报告书
所属课程名称JAVA课程设计
题目 贪吃蛇游戏设计
分院
专业班级
学 号
指导教师
华东交通大学理工学院
课程设计(论文)任务书
专业班级姓名
一、课程设计(论文)题目贪吃蛇游戏设计
二、课程设计(论文)工作:
自2012年12月17日起至2012年12月27日止。
三、课程设计(论文)的内容要求:
内容:
贪吃蛇游戏设计与实现,主要分为以下二个模块:
游戏主界面模块游戏控制模块。
在此只实现游戏的游戏主界面模块、游戏控制模块。
并且只是实现开始、暂停、退出等功能。
要求:
a)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理b)系统设计要实用,编程简练、规范,可用,功能全面c)说明书、流程图要清楚,有解决问题办法总结d)要求上机调试通过e)设计上交内容:
设计报告,源程序文件,可执行文件
学生签名:
2012年12月27日
序号
项目
等 级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
任务难度评价
6
设计中创新性评价
7
论文书写规范化评价
8
综合应用能力评价
综合评定等级
课程设计(论文)评阅意见
评阅人职称教师
2012年12月27日
目 录
第1章课程设计内容及要求..........................................5
第2章课程设计目的和意义..........................................6
第3章设计思路及处理流程.........................................8
第4章设计结果及代码................................................10
第5章程序设计心得...................................................18
第6章参考文献..........................................................20
第一章课程设计内容及要求
内容:
贪吃蛇游戏设计与实现,主要分为以下二个模块:
游戏主界面模块游戏控制模块。
在此只实现游戏的游戏主界面模块、游戏控制模块。
并且只是实现开始、退出、选择游戏难度等功能。
给出1条小蛇和随机出1个食物当小蛇吃到食物时就加分。
要求:
a)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理
b)系统设计要实用,编程简练、规范,可用,功能全面
c)说明书、流程图要清楚,有解决问题办法总结
d)要求上机调试通过
e)设计上交内容:
设计报告,源程序文件,可执行文件
第二章课程设计目的和意义
目的:
a)复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握
b)掌握java程序设计的思想、流程,企业要求代码规范性及在项目中的应用
c)加强理论知识和实际应用的结合应用,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力
d)培养学生在项目开发中团队合作精神,表达沟通、创新意识能力
e)提高学生的科技论文写作能力。
f)游戏形状(方块)需求,良好的方块形状设计,绘制小蛇和食物,小蛇由几个方块组成,食物由1个方块组成
意义:
本次程序设计在于学习Java程序设计基本技术,学习用JBuilder开发Java程序的相关技术,熟悉游戏“贪吃蛇”的需求,熟悉项目开发的完整过程。
学会怎样进行一个项目的需求分析、概要设计、详细设计等软件开发过程,熟练地掌握Java程序设计的基本技术和方法,熟练地掌握JBuilder环境的使用方法,培养起初步的项目分析能力和程序设计能力。
本次课程设计题目还主要应用到JAVA面向对象程序设计语言中Swing组件和GUI(图形用户界面)当中的一些知识,当然也用到JAVA中大部分基础知识,如JAVA的基本控制结构、数组、输入与输出等等。
第三章设计思路及处理流程
设计思路:
贪吃蛇游戏设计与实现主要分为以下二个模块游戏主界面模块和游戏控制模块。
在此只实现游戏的游戏主界面模块、游戏控制模块。
游戏主界面模块:
游戏的主界面是进入游戏后能够给玩家第一感官的部分主要包括游戏图形区域界面、新生方块的预览、重新开始游戏按钮以及游戏排行榜按钮。
从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观和爽心悦目。
游戏控制模块:
这个模块是游戏的中心环节。
为了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。
本设计所开发的是基于Java的一个贪吃蛇游戏软件。
处理流程,如下图:
第四章设计结果及代码
游戏界面,程序运行完,点击游戏,开始游戏,利用方向键来控制游戏:
游戏开始界面,点击它里面的开始游戏则进行游戏,点击退出游戏则退出:
游戏困难程度界面,有简单、普通、困难三种程度,点击其中一种,开始游戏:
积分排行界面,用于储存最高分数,点击它可以查询玩此游戏的最高分数,让玩家可以去突破:
本程序在运行后,能够正常的相应按键事件。
进入主界面后单击游戏,会弹出它的子菜单,然后选择开始游戏此时就会触发ks(开始游戏)事件,此时会出现蛇和食物,通过键盘的控制可以实现蛇的移动方向以及移动速度。
当吃到事物的时候蛇的长度就增加,当蛇的长度增加时移动的速度也会加快,并且会随机出现新的食物。
当吃不到食物或者碰到了墙壁或者碰到了自身时就会死亡。
单击难易程度菜单时弹出它的子菜单,有简单,一般和困难,分别控制游戏的难易程度,单击积分排行时会出现最高分的记录。
程序代码如下:
packageSnakeGame;
importjava.awt.Color;//导入相应的文件,不导入则会报错
importjava.awt.Graphics;//图形,图形处理
importjava.awt.Toolkit;//成套工具
importjava.awt.event.ActionEvent;//导入相应的类,指示发生了组件定义的动作的语义事件,事件源:
由它们来引导相应事件的发生
importjava.awt.event.ActionListener;//用于接收操作事件的侦听器接口
importjava.awt.event.InputEvent;//导入java.awt.event包里面的InputEvent类,就可以用InputEvent里面的函数了
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjavax.swing.JCheckBoxMenuItem;//把javax包里面的swing包里面的“。
。
。
”引进来
importjavax.swing.JFrame;//框架
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;//菜单栏
importjavax.swing.JMenuItem;//菜单选项
importjavax.swing.JOptionPane;//选择窗口
importjavax.swing.KeyStroke;//按键
publicclassSnakeGameextendsJFrameimplementsActionListener,KeyListener,Runnable{
//publicvoidrun()方法主要用来完成游戏主体运行流程控制功能
publicvoidrun(){
time=500;
for(i=0;i<=length-1;i++)
{
m[i]=90-i*10;n[i]=60;
}
创建游戏的菜单以及按钮,其内容为开始和退出游戏,困难程度,最高积分,关于。
publicSnakeGame(){
setVisible(true);
menuBar=newJMenuBar();
toolkit=getToolkit();
youXiMenu=newJMenu("游戏");
kaiShiYouXi=newJMenuItem("开始游戏");
exitItem=newJMenuItem("退出游戏");
nanDuMenu=newJMenu("困难程度");
cJianDan=newJCheckBoxMenuItem("简单");
cPuTong=newJCheckBoxMenuItem("普通");
cKunNan=newJCheckBoxMenuItem("困难");
fenShuMenu=newJMenu("积分排行");
fenShuItem=newJMenuItem("最高记录");
guanYuMenu=newJMenu("关于");
zuoZheItem=newJMenuItem("关于作者");
………
if(growth==0)
{
reform();//得到食物
}
else
{
upgrowth();//生成食物
}
……
this.repaint();//重绘
}
}
voidisDead()
{
判断游戏是否结束的方法
if(z==4)
{
x=x+10;
}
………
当蛇吃到东西时的方法
publicvoidupgrowth()
{
if(length<50)
{
length++;
}
……….
设置背景
publicvoidpaint(Graphicsg){
g.setColor(Color.DARK_GRAY);//设置背景
g.fillRect(0,50,400,400);
g.setColor(Color.pink);
for(i=0;i<=length-1;i++)
{
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);
g.drawString("当前已吃食物数"+this.foods,6,72);
第五章程序设计心得
通过这次课程设计,我对这学期所学的JAVA语言程序设计有一个更深刻的了解,将所学的知识应用于实践,由于所学知识有限,为了使游戏能够实现自己