资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第一章需求分析11.1功能与数据需求11.2界面需求11.3开发与运行环境需求2第二章系统的设计实现32.1程序总体结构32.2设计实现3第三章测试53.1鼠标响应测试53.2移动消除小球测试6第四章用户手册6第五章总结提高65.1游戏设计总结65.2对本项目的意见与建议6附录:源代码7- 1 -第一章 需求分析1.1功能与数据需求游戏区有一个9*9的方阵、用户鼠标点击一个球;用户选中一个小球后单击空白位置,可以把选中的小球移动到该位置。游戏开始阶段,点击游戏图标,进入游戏。规则:球移动时,只有同色球五个相同颜色相邻并组成一条直线(横向、竖向、斜向)的小球才可以消除并得分。每次移动球后,如果达不到5个一组的,自动产生屏幕上方提示的三个球,每消失一组,得消失数目*2的分数。1.2界面需求游戏开始时直接显示初始界面,玩家开始游戏,默认伴随着音乐。游戏开始后随机生成四色棋子(共5个)。游戏界面包括:四种色小球、网格、游戏最高分、当前得分、下次即将产生的三个球、音乐设置菜单。1.3开发与运行环境需求开发环境为eclipse,操作系统windows98以上皆可。第二章 系统的设计实现2.1程序总体结构初始界面:定义网格坐标位置。出球模块:游戏开始阶段系统随机产生五个球和以后随机产生三个个不同颜色的球。鼠标相应模块:判断所控制的球与、设置音、退出等操作;(该函数中已经包括了对于竖排、横排、斜排消去的小球的判断以及对应分数的累加)2.2设计实现单击游戏图片进入过程的界面:进入游戏状态的界面:第三章 测试3.1鼠标响应测试调试将鼠标点入开始框后随机产生球。 错误:点完后无反应。原因:开始状态的点坐标选错。3.2移动消除小球测试错误:每次移动完小球后,原地无法再次放小球。原因:每次移完小球后,该点的坐标没有更新为0,0为无球。第四章 用户手册本软件是一款娱乐游戏,名字为五子连珠,进入游戏画面后按返回键可以,结束游戏,开始后回随机出现四的小球共五个,以用鼠标选定你要选的小球,选定后,可用鼠标选在你要落的位置,直到小球连成一线,且数量不少于五,消去,加分,并且在出现三种不同颜色的小球。运行环境在windows98以上均可,无需安装,运行软件即可。第五章 总结提高5.1游戏设计总结做完这个游戏后,我分厂的激动。起初以为不肯能完成的任务。现在全部完成了。但仍有不足之处,需要进一步改进。做完这个手机游戏项目之后,我觉得我在Java程序设计这个专业上有了一个质的飞跃,制作程序的过程中,遇到困难自己想办法去解决,弥补了自己以前在学Java语言的不足与学习上漏洞。编程时,往往遇到解决不了的问题,我常常和同学们一起探讨,最终解决我的问题,在交流的同时,自己的知识也会有很大的补充。尽管这个游戏还有很多的不足,但毕竟这是我的第一次,自己完成了一个以前全然没有接触过的领域的成果。当然我还是要努力的,在此,感谢老师还有同学们对我的帮助。我认为课设是一件十分有意义的事情,因为它让我们做到了学以致用,通过设计游戏的过程,我们学会了应用这学期所学的知识,来做一个小游戏。五子连珠的设计过程是艰苦但也是快乐的,艰苦是当设计遇到困难时的沮丧,而快乐是当问题用所学的知识解决是的成就感。5.2对本项目的意见与建议我认为这次游戏设计给的时间不是很充裕,没有充足的时间来美化自己的游戏。在制作过程中,有许多函数是教材和课设书内没有涉及的知识,需要我们上网进行搜索。Java语言的课结时间较早,我们在课设上有问题不能询问老师,不是很方便。另外,作为重点以及难点的指针和链表,这学期所用的课时不是很多,这方面的知识掌握的不是很牢固。只有拓宽了知识面,才能为将来做好准备附录:源代码球移动路径的代码文件PathArithmetic.java:package org.yxp.gobang.arithmetic;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import org.yxp.gobang.domain.Bead;import android.graphics.Point;public class PathArithmetic /* 记录已经过的点-张会敏 */private List invalidatePoints;/* 记录路径上的点-张会敏 */private List pathPoints;private static PathArithmetic pathArithmetic = new PathArithmetic();private PathArithmetic()/* 单例模式 -张会敏*/public static PathArithmetic getInstance()return pathArithmetic;/* * 获取2个珠子之间的路径 * -张会敏 */public List getPath(Bead beads, Point from, Point to) invalidatePoints = new ArrayList();pathPoints = new ArrayList();boolean flag = isLink(beads , from , to);System.out.println(flag);System.out.println(pathPoints);return pathPoints;/* * 宽度优先搜索算法 * -张会敏 */private boolean isLink(Bead beads, Point from, final Point to) /第一步:记录经过的点invalidatePoints.add(from);/第二步:获取上、下、左、右四个点Point points = new Point(from.x , from.y - 1),new Point(from.x , from.y + 1),new Point(from.x - 1 , from.y),new Point(from.x + 1 , from.y);/第三步:判断四个点是否有效或者是目的点List lists = new ArrayList();for(Point point : points)if(point.equals(to)pathPoints.add(to);return true;if(check(beads , point)lists.add(point);/第四步:判断有效点是否全部被占完if(lists.isEmpty() return false;/第五步:对有效点进行按最短路径排序Collections.sort(lists, new Comparator() /对lists集合按照compare方法进行比较Overridepublic int compare(Point lhs, Point rhs) /x*x + y*y开平方根double r1 = Math.sqrt(lhs.x - to.x)*(lhs.x - to.x) + (lhs.y - to.y)*(lhs.y - to.y);System.out.println(r1: + r1);double r2 = Math.sqrt(rhs.x - to.x)*(rhs.x - to.x) + (rhs.y - to.y)*(rhs.y - to.y);System.out.println(r2: + r2);if(r1 = 0 & point.x = 0 & point.y beads.length& beadspoint.xpoint.y.getBitmap() = null;游戏初始化后的界面代码Welcome.java:package org.yxp.gobang.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;public class Welcome extends Activity /* 用Handler来设置自动跳转-张会敏*/private Handler handler = new Handler()public void handleMessage(Message msg) if(msg.what = 1314)Intent intent = new Intent(Welcome.this , main.class);startActivity(intent); Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.welcome); /延迟3秒发送消息 handler.sendEmptyMessageDelayed(131
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号