- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android课程设计模板
PAGE
PAGE - 33 -
大庆师范学院
《Android应用设计》
课程设计报告
题目:基于android的简单扫雷小游戏
专业班级:计算机科学与技术(嵌入式方向)
设 计 者: 王珂:201101041172
王盼盼:201101041173
赵玉莹:201101041183
刘阳:201101041184
李若男:201101041185
指导老师: 许有军
设计时间:2013-2014(1)
报告完成日期 2013 年12月20日
一. 设计任务及要求(小三黑体)(段前0.5行,段后0.5行,下同)
1、设计任务
(1)系统会在雷区的某些小方框中随机布小若干个地雷。安放地雷的小方块称之为雷方块,其他的称之为非雷方块。部署完毕后,系统会在其他非雷方块中填充一些数字,某一个具体数字代表与其紧邻的8个方块中有多少个雷方块。
(2)游戏人可以根据(1)中的信息去判断是否可以打开某些方块,并把认为是地雷的方块打上标识。
(3)游戏开始后,雷区上方有两个计数器。左边的计数器显示用户扫雷所花的总时间,以秒为单位,
(4)当玩家将所有的地雷找出后,其余的地雷方块区都已打开,此时游戏结束。
(5)在游戏的过程中,一旦错误的打开了雷方块则立即失败,游戏结束。
2、设计要求
能够运用android语言设计出扫雷游戏的程序,会搭建android开发环境;
会创建自己的android项目生成的文件之间的关系和他们的作用,会使用各种控件;
能够对程序进行调试并学会修改其中的错误。
3、任务分配
王珂:
王盼盼;
赵玉莹:
刘阳:
李若男:
二.设计原理及总体框图
×××××××××(小4号宋体,1.5倍行距)××××××××××××××××××××………
实现原理:扫雷是一个简单的单人游戏,游戏的目的实在没有触碰任何一个地雷的情形下清空一个雷区。在扫雷游戏中,游戏者。。。
设计的总体框图:
图
包括在此说明设计的总体框图及实现原理
三.程序设计
程序分析
游戏界面设计:
在main.xml中加入三个TableRow,将整体界面划分为三个部分。
第一个TableRow中加入两个textview(Timer和MineCount),分别用来显示玩游戏话费的时间(以秒为单位)和雷方块的个数。再加入一个button(Smiley),用??显示图片。
第二个TableRow中加入一个textview,用来将第一个部分和第二个部分分开。
第三个TableRow中加入一个TableLayout(MineField),用来显示扫雷区的框架。
程序的class类:
Blocked.Java和MinesweeperGame.java
程序的主要函数:
游戏开始函数:startNewGame();
游戏显示函数:showMineFiled();
创建新游戏函数:createMineFiled();
完成游戏函数:finishGame();
设置时间函数:setmines();
玩家胜利函数:winGame();
玩家失败函数:endExistingGame();
程序详解
(1)游戏开始函数startNewGame
private void startNewGame()
{
// plant mines and do rest of the calculations
createMineField();
// display all blocks in UI
showMineField();
minesToFind = totalNumberOfMines;
isGameOver = false;
secondsPassed = 0;
}
private void showMineField()
{
// remember we will not show 0th and last Row and Columns
// they are used for calculation purposes only
for (int row = 1; row numberOfRowsInMineField + 1; row++)
{
TableRow tableRow = new TableRow(this);
tableRow.setLayoutParams(new LayoutParams((blockDimension + 2 * blockPadding) * numberOfColumnsInMineField, blockDimension
文档评论(0)