java小游戏设计.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
华北科技学院计算机学院综合性实验 实 验 报 告 课程名称 JAVA程序设计 实验学期 2014 至 2015 学年 第 1 学期 学生所在院部 计算机学院 年级 专业班级 学生姓名 学号 任课教师 实验成绩 计算机学院制 《Java程序设计》课程综合性实验报告 开课实验室:基础四 2016年 11 月 28日 "实验题目 "基于java的拼图游戏 " "实验目的 " "程序使用Eclipse集成开发环境完成,熟悉并掌握在Eclipse开发环境下编写Java" "程序。 " "设备与环境 " "硬件:多媒体计算机 " "软件:Windows系列操作系统、JDK开发包、Eclipse开发环境 " "三、实验内容及要求 " "1、实验要求 " "使用Java " "swing编程实现拼图游戏。游戏功能就是将一幅图片分割成5*5的规则小图片,游" "戏开始时将25个小图片随机摆放,玩家能够参考原图拼接出正确的图片。 " "游戏规则:在25个小图片中有一个为空白图片,玩家可以单击与空白小图片相邻 " "的任一个小图片(上、下、左、右均可),即可将单击的小图片与空白小图片交换" "位置。通过有限次的移动,即可将随机分布的小图片恢复成原图的样式。 " "2、实验内容 " "(1)各类及主要成员函数的功能: " "java源代码及其功能 " " " "序号 " "类名 " "主要功能 " " " "1 " "GreedSnake " "该类为程序入口,含有main方法。 " " " "2 " "SnakeControl " "实现控制运行等总体要求,实现方向键控制蛇的方向,空格键控制游戏暂停或继 " "续,还有分数等。 " " " "3 " "SnakeModel " "该类实现蛇的结构与具体运动,如判断食物就是否与怎样被吃掉及判断后的动作" "。 " " " "4 " "Node " "该类实现组成蛇身的单位-食物。 " " " "5 " "SnakeView " "该类实现画板功能,用黑色画蛇身,红色画食物。 " " " "(2)具体代码及实现如下: " " 程序入口主方法: " "//第一部分 " "public class GreedSnake {//建立主类GreeSnake " "public static void main(String[] args) { " "SnakeModel model = new SnakeModel(20,30);//初始化蛇出现的位置 " "SnakeControl control = new SnakeControl(model); " "SnakeView view = new SnakeView(model,control); " "//添加一个观察者,让view成为model的观察者 " "model、addObserver(view); " "(new Thread(model))、start(); " "} " "} " " 实现对蛇身的控制要求: " "//第二部分 " "//游戏的Model类,负责所有游戏相关数据及运行 " "class SnakeControl implements " "KeyListener{//SnakeControl实现接口KeyListener,键盘监听 " "SnakeModel model; " "public SnakeControl(SnakeModel model){ " "this、model = model; " "} " "public void keyPressed(KeyEvent e) { " "int keyCode = e、getKeyCode(); " "if (model、running){ // 运行状态下,处理的按键 " "switch (keyCode) { " "case KeyEvent、VK_UP: " "model、changeDirection(SnakeModel、UP); " "break; " "case KeyEvent、VK_DOWN: " "model、changeDirection(SnakeModel、DOWN); " "break; " "case KeyEvent、VK_LEFT: " "model、changeDirection(SnakeModel、LEFT); " "break; " "case KeyEvent、VK_RIGHT: " "model、changeDirection(SnakeModel、RIGHT); " "break; " "case KeyEvent、VK_ADD: " "case KeyEvent、VK_PAGE_UP://向上翻加速 " "model、 【Java小游戏设计】这篇实验报告涉及的是使用Java Swing编程实现的一款拼图游戏。游戏的核心是将一张图片分割成5*5的小图片,初始时这些小图片会随机排列,玩家需通过移动空白图片来拼凑出原始图像。游戏规则简单易懂,玩家可以点击空白图片周围的小图片进行交换,目标是在有限的移动次数内恢复原图。 实验中涉及的主要知识点有: 1. **Java编程基础**:实验基于Java语言,使用Eclipse IDE进行开发,要求学生熟练掌握Java编程语法和Eclipse的使用。 2. **Swing库**:Swing是Java的一个图形用户界面(GUI)工具包,用于创建桌面应用程序。在这个游戏中,Swing被用来构建用户界面,包括显示图片和处理用户交互。 3. **事件监听**:SnakeControl类实现了KeyListener接口,用于监听键盘输入,比如方向键控制蛇的移动,空格键暂停或继续游戏。 4. **多线程**:游戏的运行是在一个独立的线程中进行的,通过`new Thread(model).start()`启动,这样可以保证用户交互和游戏逻辑的异步执行。 5. **模型-视图-控制器(MVC)模式**:SnakeModel、SnakeControl和SnakeView三个类分别对应了模型、控制器和视图。这是一种常见的软件设计模式,用于分离数据处理(模型)、用户交互(视图)和业务逻辑控制(控制器)。 6. **Observer设计模式**:SnakeModel通过`addObserver`方法将SnakeView作为观察者,当模型状态改变时,观察者(视图)能接收到通知并更新显示,这体现了观察者模式的应用。 7. **对象和类的设计**: - `GreedSnake`是程序的主类,包含main方法,是程序的入口点。 - `SnakeControl`负责游戏的控制逻辑,如响应键盘输入,改变蛇的方向,控制游戏暂停/继续。 - `SnakeModel`维护蛇的状态,如位置、运动方向等,并实现蛇的行为逻辑。 - `Node`表示组成蛇身或食物的单元,可能包含位置和类型等属性。 - `SnakeView`负责图形绘制,显示游戏画面,用不同的颜色区分蛇身和食物。 8. **异常处理和边界条件**:在游戏中,需要处理各种边界条件,例如蛇头不能撞到自己,不能移动到非图片区域等,这些都是程序设计中的重要考虑因素。 9. **游戏算法**:实现拼图游戏的关键在于如何生成随机布局、如何检查游戏结束条件以及如何有效地实现移动操作。这些都需要一定的算法设计和实现技巧。 通过这个实验,学生不仅可以提升Java编程技能,还能学习到软件设计原则和模式,同时锻炼解决问题和逻辑思维能力。
剩余7页未读,继续阅读
- 粉丝: 110
- 资源: 9354
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助