当前位置:文档之家› java课程设计贪吃蛇小程序 附代码(2)

java课程设计贪吃蛇小程序 附代码(2)

}
public void keyPressed(KeyEvent e) {//按键响应
int keyCode=e.getKeyCode();
if(stat==1) switch(keyCode){
case KeyEvent.VK_UP:if(direction!=SOUTH) direction=NORTH;break;
游戏主界面模块:
游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的速度选择更新界面、新生方块的预览、游戏速度控制按钮、暂停游戏按钮、重新开始游戏按钮以及游戏排行榜按钮。从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。
游戏控制模块:
这个模块是游戏的中心环节,主要完成控制游戏的速度、暂停、重新开始等功能。为了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。
本设计所开发的是基于Java的一个贪吃蛇游戏软件,主要实现游戏的速度控制、游戏的暂停、游戏的退出等功能,分为: 游戏主界面模块、游戏控制模块以二个模块。
性能:
本软件在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。
自定义类说明
图3-1程序运行图
当蛇没有吃到食物且碰到边界或碰撞到自己的身体时,游戏结束,此时得分为0。如果想重新开始即按ENTER或S键,运行结果如图3-2所示:
图3-2程序结束图
程序异常处理
在蛇的运行线程过程中,当蛇撞到墙或自己的身体时,将抛出一个Exception类的异常对象,然后使用try-catch去捕捉这个异常,
2、课程设计的具体要求:
(1)界面美观大方,操作简单便捷,按键布局美观。
(2)实现贪吃蛇游戏的左右拐弯,增长等基本游戏功能。
(3)程序能正确运行,操作无错误。
(4)要求所撰写的课程设计任务书的内容和格式符合要求。
指导教师签字:日期:
指导教师评语
成绩:指导教师签字:日期:
课程设计所需软件、硬件等
硬件CPU:Intel T2080D-0 内存:2G 硬盘空间:320G
枣 庄 学 院
信息科学与工程学院
课程设计任务书
题目:贪吃蛇小程序的设计与开发
学号:
姓பைடு நூலகம்:
专业:计算机科学与技术
课程:java程序设计
指导教师:刘职称:讲师
完成时间:2012年5月----2012年6月
枣庄学院信息科学与工程学院制
课程设计任务书及成绩评定
课程设计的任务和具体要求
1、课程设计的任务:利用所学知识开发一个java贪吃蛇小游戏;
本程序的另一个功能是在程序运行窗口的左上角显示,用户在游戏过程中所得的分数,不过缺点是无法保存分数。
2.3.3总设计模块的划分
根据游戏需求中游戏所要实现的功能,整个游戏分为二个模块进行具体的设计,如图2-2所示。
游戏控制模块的主要框架如图2-3所示。
游戏移动速度功能控制:点击“PageUp, PageDown”按钮,蛇的移动速度就会改变,每点击一次,速度的改变频率为0.75。
游戏暂停控制:点击“Space或P暂停游戏”按钮,游戏暂停;再单击,游戏继续。
游戏重新开始控制:点击“Enter、S或R”键后,系统图重新载入,即游戏重新开始。
2.3.4类、方法、属性说明
1.成员变量
表1 主要成员变量(属性)
成员变量描述
变量类型
名称
文件菜单中子菜单“新建”
JMenuItem
mFile_New
异常的处理如下:
try{
Thread.sleep(timeInterval); }
catch(Exception e)
{
break;
}
通过这次课程设计,我对这学期所学的JAVA语言程序设计有一个更深刻的了解,将所学的知识应用于实践,由于所学知识有限,为了使游戏能够实现自己预先的构想,我通过上网和去图书馆找程序,比较好的流程图及功能模块,不断阅读修改代码使程序达到预期所要实现的目标,完成课程设计后,可以感觉到自己对Java程序的又有了新的认识。
软件 操作系统:Windows XP 开发软件:jdk eclips
课程设计进度计划
起至日期
工作内容
备注
2012.5.1—5.15
2012.6.1—6.10
2012.6.11—6.15
2012.6.16—6.20
确定课题并收集资料
整体规划并进行初步定位
编写程序代码并进行试验
撰写课程设计任务书
参考文献、资料索引
类名:Exception
作用:用来处理当蛇撞到墙或自己的身体时程序的运行
继承的父类:GreedSnake类
实现的接口:没有
2.3.1程序流程图
本次游戏设计的处理流程如图2-1所示。
2.3.2程序概述
本程序是一个利用Java应用软件制作的贪食蛇小游戏。
在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运行方向;通过Pageup和pagedown键来控制蛇的移动速度,每单击一次,蛇的移动速度改变一次,改变频率为0.75。游戏运行过程中,如果想暂停,只需要按Space或P键即可。重新开始游戏的按键为Enter、S或R。当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。
case 3:heady++;break;
case 4:heady--;break;}//蛇头的前进
if(heady>19||headx>19||tailx>19||taily>19||heady<0||headx<0||tailx<0||taily<0||fillblock[headx][heady]!=0){
tailx=1,taily=8,tail,foodx,foody,food;//初始化定义变量
public final int EAST=1,WEST=2,SOUTH=3,NORTH=4;//方向常量
int [][] fillblock=new int [20][20];//定义蛇身所占位置
public SnakeGame() {//构造函数
FoodLocate();
food=2;
try{
Thread.sleep(100); }
catch(InterruptedException e){}//延迟
}
if(food!=0)food--;
else{tail=fillblock[tailx][taily];
fillblock[tailx][taily]=0;//蛇尾的消除
stat=0;
break;
} //判断游戏是否结束
try{
Thread.sleep(150); }
catch(InterruptedException e){}//延迟
fillblock[headx][heady]=direction;
if(headx==foodx&&heady==foody){//吃到食物
switch(tail){
case 1:tailx++;break;
case 2:tailx--;break;
case 3:taily++;break;
case 4:taily--;break;
}//蛇尾的前进
}
repaint();
}
if(stat==0)
JOptionPane.showMessageDialog(null,"GAME OVER","Game Over",RMATION_MESSAGE);
direction=EAST;//方向初始化的设置
FoodLocate(); //定位食物
while (stat==1){
fillblock[headx][heady]=direction;
switch(direction){case 1:headx++;break;
case 2:headx--;break;
设置编辑区默认背景色

Text.setForeground(Color.black)
设置编辑区默认前景色

本程序在运行后,能够正常的相应按键事件。由于程序的主要部分已经集成为一个对象SnakeModel,所以利用键盘就可以实现操作。蛇前行的过程中,可以任意向其左或右方向改变方向,但按其前进方向和前进的反方向都没有反应。点击PageUp, PageDown键后,蛇的移动速度会根据点击的次数而改变。每点击一次,速度的改变频率为0.75。点击Space或P键后游戏就暂停了。点击Enter或R或S键后系统则重新载入,即游戏重新开始。运行结果如图3-1所示:
case KeyEvent.VK_DOWN:if(direction!=NORTH)direction=SOUTH;break;
case KeyEvent.VK_LEFT:if(direction!=EAST)direction=WEST;break;
序号
文献、资料名称
编著者
出版单位
[1] 《Java语言程序设计》(第二版) 李尊朝,苏军 中国铁道出版社
[2] 《java大学基础教程》(第六版) 刘晓莉电子工业出版社
[3] 《Java编程思想》(第四版)埃史尔(美),译者:陈昊鹏 机械工业出
版社
《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
相关主题