贪吃蛇---java课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉理工大学
课程设计课程名称JA V A 课程设计_ 题目贪吃蛇程序设计
专业电子商务
班级****
学号*******
姓名***
成绩__________________ 指导教师__________________
20**年**月**日
课程设计任务书
设计题目:
设计目的:
1.巩固和加深课堂所学知识;
2.学习掌握一般的软件的设计方法和查阅、运用资料的能力;
3.掌握JA V A程序设计语言,面向对象的软件设计思想、方法。
设计任务:(在规定的时间内完成下列任务)
1、任务:设计一个贪吃蛇的游戏
功能要求:能够显示贪吃蛇的运动,能通过键盘控制贪吃蛇的运行,能够处理蛇在运行中个各种情况,以及其它的辅助功能;
要提供主要的设计思路、数据结构的设计。
2、设计任务要完成设计、编码、测试等过程,给出设计思路、设计说明书、主要的代码
的说明、使用说明书。源代码以及可运行的贪吃蛇游戏。
时间安排:
具体要求:设计报告撰写格式要求(按提供的设计报告统一格式撰写)
具体内容如下:
①设计任务与要求
②总体方案与说明
③面向对象的设计(主要类的设计)
④源程序清单与注释
⑤软件主要模块流程图
⑥问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、
解决方法及改进设想);
⑦小结与体会
附录:①源程序(必须有简单注释)②使用说明③参考资料
指导教师签名:年月日
教研室主任(或责任教师)签名:年月日
游戏界面设置包括:游戏区设置、游戏帮助信息设置、游戏分数查看区。
游戏界面使用简单和直观的布局设计,游戏区放置在界面的主题位置上,在游戏区上部放置分数,在游戏区下部放置使用说明帮助,具体设计效果如图2-1所示。
图2-1游戏主题界面设计效果
2.2.2贪吃蛇蛇身及运动设置
贪吃蛇的蛇身设置是整个游戏设计的关键。它的基本思路是:去掉蛇尾,显示并移动出蛇头外蛇身,根据蛇身的运动方向,决定蛇头的位置,完成蛇头吃食物的处理操作,显示蛇头。
而蛇运动的四个方向,则通过按键来控制。蛇吃到一个食物,就加分。每次食物出现的位置不能在蛇身上,如果蛇在运动的过程中撞到自己或者撞墙,则游戏结束,具体效果如图2-2所示,图2-2就是蛇撞到墙之后,提示游戏结束。
图2-2 贪吃蛇撞墙后效果
2.2.3游戏控制设置
游戏控制设置就是控制游戏的暂停与开始。设置PageUp(加速), PageDown(减速)按键来控制速度,设置空格或着p按键来暂停进行中的游戏,设置ENTER或着R或者S按键来开始暂停的游戏。
3.面向对象的设计
贪吃蛇游戏各模块及程序流程有若干类实现,下面阐述各个类的设计与实现。
3.1 GreedSnake类
该类包含六个主要的功能方法,分别是:
(1)构造函数public GreedSnake(),主要用来设置用户控制界面。
(2)public void keyPressed()方法,主要用来对游戏的按键操作进行处理。
(3)void repaint()主要用来绘制游戏界面包括蛇和食物。
(4)private void drawNode()主要用来绘制某一结点。
(5)public void updateScore()方法主要用来改变积分器。
(6)void begin()方法用来控制游戏的开始界面。
5.软件主要模块流程图
软件的主要模块流程如下图5-1所示。
图5-1 软件主要模块流程图
6.问题分析与解决方案
通过NetBeans来运行程序。
6.1问题一
问题一:游戏在运行过程中不能暂停
解决方法:在游戏中增加暂停控制
panelButtom.add(labelHelp, BorderLayout.CENTER);
labelHelp = new JLabel("按空格或 p 暂停 ", JLabel.CENTER);
6.2问题二
问题二:贪吃蛇在吃掉一个食物后,不能实现分数累加
解决方案:定义updateScore专门统计分数,每吃掉一个食物,累加分数 public void updateScore() {
String s = "分数: " + snakeModel.score;