java课程设计报告费下载

上传人:jiups****uk12 文档编号:40015814 上传时间:2018-05-22 格式:DOC 页数:39 大小:284.50KB
返回 下载 相关 举报
java课程设计报告费下载_第1页
第1页 / 共39页
java课程设计报告费下载_第2页
第2页 / 共39页
java课程设计报告费下载_第3页
第3页 / 共39页
java课程设计报告费下载_第4页
第4页 / 共39页
java课程设计报告费下载_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《java课程设计报告费下载》由会员分享,可在线阅读,更多相关《java课程设计报告费下载(39页珍藏版)》请在金锄头文库上搜索。

1、Java 课程设计1重庆邮电大学JavaJava 程序设计报告书题题 目目 _简单贪吃蛇游戏简单贪吃蛇游戏_ _专专 业业 名名 称称 _ _计算机计算机 班班 级级 _ _ 学学 生生 学学 号号 _ 学学 生生 姓姓 名名 _ 指指 导导 教教 师师 _ _ Java 课程设计2目 录一、 概要设计.3二、 程序整体设计说明.32.1、程序运行图.32.2、程序中所用类说明.42.3、类图-三、部分源代码及注释.43.1、程序界面.43.2、按键监听及计算.6四、调试及错误总结.9五、设计心得.9六、参考文献.9Java 课程设计3一、一、 概要设计概要设计本程序是针对贪吃蛇小游戏的 JA

2、VA 程序,利用方向键来改变蛇的运行方向,空格键暂停或继续游戏,并在随机的地方产生食物,吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。本系统共包括 1 个 java 源文件和 7 个类文件。1. 类之间的关系如图类之间的关系如图 1 所示所示:2.简要算法分析:简要算法分析:a.利用数组列表来存放蛇身的每一个节点。b,蛇的方向分别用四个整型常量表示:1 上,2 下,3 左,4 右。 可利用 derection % c. 是否等于 newDer % 2 来判断改变的方向是否一原来方向相反。d,蛇吃食物算法:根据蛇头的方向,判断蛇头坐标与食物坐标关系,例如:蛇头向上,则蛇头与食物的

3、 x 坐标相同,SnakeGameSnakeFrameSnakeNodeSnakePanelStatusRunnableSnakeRunnableJava 课程设计4蛇头 y 坐标比食物 y 坐标少 10(一个食物或一节蛇身的长度) 。e,蛇移动时,根据当前蛇头坐标向蛇头方向前画一个节点作为新的蛇头,并去掉蛇尾。二、二、 程序整体设计说明程序整体设计说明2.1、程序运行图、程序运行图游戏开始界面:游戏运行界面:Java 课程设计5游戏结束界面:Java 课程设计62.2、系统流程图、系统流程图Java 课程设计7否是否是1.主类 SnakeGame(1)主类为此程序的入口,定义了 SnakeF

4、rame 的对开始 New Game是否发生碰撞启动游戏状态检测 线程启动游戏线程判断蛇头方向游戏是否结束Move蛇身+1是否吃到食物 物游戏结束Repaint()记录游戏状态结束游戏状态线程RepaintJava 课程设计8象 frame,开始运行此程序。(2)源代码见文件 SnakeGame.Java2.类 SnakeFrame(1)成员变量见表 2表 2 主要成员变量成员变量描述变量类型名称状态标签Private JLabelstatusLabel分数标签Private JLabelscoreLabel蛇面板private JPanelsnakePanel速度标签private JLab

5、elspeedLabel蛇类对象private Snakesnake菜单条private JMenuBarbar游戏菜单JMenugameMenu帮助菜单JMenuhelpMenu速度菜单JMenuspeedMenu新菜单项JMenuItemnewItem暂停菜单项JMenuItempauseItem关于菜单项JMenuItemaboutItem慢菜单项JMenuItemslowItemJava 课程设计9中间菜单项JMenuItemmidItem快菜单项JMenuItemfastItem开始菜单项JMenuItemstartItem帮助菜单项JMenuItemhelpItem(2)方法见表

6、3表 3 主要方法方法名功能SnakePanel()创建蛇的面板addKeyListener监视器setBounds()设置尺寸JLabel()设置标签JMenu()创建菜单JMenuItem构造菜单项3类 Snake(1)成员变量见表 4表 4 主要成员变量成员变量描述变量类型名称Java 课程设计10是否运动booleanisRun蛇体ArrayListBody食物NodeFood方向intDerection分数intScore状态intStatus速度intSpeed慢public static final int SLOW中public static final int MID快pub

7、lic static final int FAST运动中public static final int RUNNING已暂停public static final int PAUSED游戏结束public static final int GAMEOVER左public static final int LEFT上public static final int UP右public static final int RIGHT下public static final int DOWN(2)方法见表 5表 5 主要方法方法名功能isEaten()判断食物是否被蛇吃掉,如果食物在蛇运行方向Java

8、课程设计11的正前方,并且与蛇头接触,则被吃掉isCollsion()判断是否碰撞makeFood()在随机的地方产生食物changeDerection(int newDer)改变运行方向move()蛇在运行中所采取的措施4. 类 Node(1)成员变量见表 6表 6 主要成员变量成员变量描述变量类型名称食物块宽public static final int W食物块高public static final int H横坐标intx纵坐标inty(2)源代码见文件 SnakeGame.java5.类 SnakePanel 此类为画蛇的面板类,是实现红蓝间隔画蛇身算法的类。源代码见文件源代码见文

9、件 SnakeGame.javaJava 课程设计126.类 StatusRunnable此类为线程的子类,实现记录状态的功能。源代码见文件 SnakeGame.java7.类 SnakeRunnable此类为线程的子类,实现蛇运动以及记录分数的功能。2.3、UML 图图2.3、程序中所用类说明、程序中所用类说明1.SnakeGame: 该类为程序入口,含有 main 方法。2.SnakeFrame:该类实现菜单控制运行等总体要求,实现方向键控制蛇的方向,空格键控制游戏的暂停与继续,还有分数等,在菜单里还有制作人信息等。3.Snake:该类包含实现具体蛇的结构和蛇的具体运动,例如随机产生食物,

10、判断失误是否被吃掉,蛇身增长等等。4.Node:该类为实现蛇身的组成单位以及单个食物的模板。5.SnakePanel:实现画板功能,将蛇与状态显示画在框架之Java 课程设计13内。6.StatusRunnable:记录蛇状态的线程。7.SnakeRunnable:该类为蛇运动及记录分数的线程。三、源代码及注释三、源代码及注释package snakeGame;/食物,蛇身的组成基本单位public class Node public static final int W = 10; /大小,长宽各是个像素public static final int H = 10;int x;int y;p

11、ublic Node(int x,int y) this.x = x;this.y = y;Java 课程设计14import java.util.ArrayList;import javax.swing.JOptionPane;public class Snake public boolean isRun; /蛇是否在运动中ArrayList body; / 蛇的身体Node food;int derection;int score;int status;int speed;public static final int SLOW = 200;public static final int MID = 100;public static final int FAST = 50;public static final int RUNNING = 1;public static final int PAUSED = 2;public static fi

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号