您的位置:首页 > 理论基础 > 数据结构算法

20162329 实验五:数据结构综合应用

2017-12-17 12:50 531 查看

实验五:数据结构综合应用

课程:程序设计与数据结构

班级: 1623

姓名: 张旭升

学号:20162329

指导教师:娄嘉鹏 王志强

实验日期:12月15日

实验密级: 非密级

预习程度: 已预习

必修/选修: 必修

实验序号: cs_29

实验名称: 数据结构综合应用

实验内容:

1.分析系统架构

2.编译、运行、测试系统

3.修改系统

4.分析数据结构、排序、查找算法的应用

实验要求

1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程

完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是 运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决 办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可 以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导

严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。

一、系统架构分析

游戏系统架构图:




由图看得出我们的游戏大致实行的是一种类似线性的结构,由主界面的三个个按钮分为三大块

选择关卡——游戏界面——胜利界面

选项界面

关于我们

每一块都是由上一个活动到下一个活动的类似线性连接


二、编译,运行,测试系统

1.克隆项目到目标文件夹:



建立自己的文件夹——打开命令行——进入目标文件夹——git clone + 目标链接 —— 输入用户名,密码 —— 克隆成功

2.编译,运行



打开Android Studio —— 打开项目(自动编译) —— 运行项目

三、修改系统

1.显示学号信息



在游戏的选项界面的布局文件中加入一个Button,按钮文字设置为自己名字 —— 在GameOption活动中获取按钮组件 —— 然后为按钮设置监听器 —— 当点击按钮时发出一条Tost消息显示学号

2.修改界面样式

选择关卡原样式



修改后样式



四、分析数据结构,查找,排序算法的应用

实现查找的部分代码:

int [][] labelInCells = mGameActivity.getCurrentState().getLabelInCells();

for (int r = 0; r < labelInCells.length; r++)  //逐行地扫描矩阵
for (int c = 0; c < labelInCells[r].length; c++){ //对当前行r,逐列地扫描
destRect = getRect(r, c);  //得到图片在屏幕中的显示区域
srcRect = new Rect(0, 0,GameBitmaps.FlagBitmap.getWidth(), GameBitmaps.FlagBitmap.getHeight());//获得显示图片的大小
switch (labelInCells[r][c]){
case 1:
canvas.drawBitmap(GameBitmaps.FloorBitmap,srcRect,destRect,null);   //绘制地板
break;
case 2:
canvas.drawBitmap(GameBitmaps.FlagBitmap, srcRect, destRect, null); //绘制标记
break;
case 3:
canvas.drawBitmap(GameBitmaps.WallBitmap, srcRect, destRect, null); //绘制墙
break;
case 4:
canvas.drawBitmap(GameBitmaps.BoxBitmap, srcRect, destRect, null);  //绘制箱子
break;
case 5:
canvas.drawBitmap(GameBitmaps.ManBitmap, srcRect, destRect, null);  //绘制人
break;
case 6:
canvas.drawBitmap(GameBitmaps.ReadboxBitmap, srcRect, destRect, null);  //绘制红箱子
break;
}


在以上代码中先获取到表示地图的一个二位数组,然后运用一个嵌套的for循环语句对数组中元素进行蛮力法查找地板,小人,墙,箱子等的位置,然后根据查找结果绘制对应图片。


五、实验心得


本次实验重在考察我们对自己项目的了解程度,主要通过项目的分析,克隆,部分修改结果,来体现,经过本次实验,我感觉到我们组的游戏在数据结构的运用上并不是很明显,可能是第一次做项目经验不足的原因,从一开始的规划就不是很完善,导致结果并不理想,希望以后自己可以吸取这次的教训有所提高。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: