实验五 团队项目
项目一
题目
1 git clone 小组项目
2 编译项目,提交编译成功截图(全屏,要有学号信息)
3 提交运行过程中的截图(全屏,要有学号信息)
分析
对于这个问题来说并不难,我们平时在开发项目的时候就需要将远程仓库上的代码克隆到本地并且在每一天完成任务之后将项目推送到码云上。
编译在AndroidStudio中会自己完成。
运行时就可以在AndroidStudio自带的虚拟机上运行,虽然有点慢,但是在实际开发时可以直接找一个android手机来运行(打开开发者选项)这样运行时等待的时间可以大大的减少,也可以防止虚拟机太占内存而电脑运行缓慢的问题。
结果
问题
在克隆项目的时候遇到过的问题:首先是Git这个工具包找不到,所以要先导入Git,在File选项下选择seting选项打开如下界面在填入地址的地方填入你本地的Git的位置,在输入地址之后在用后面的Test测试一下是否成功。
在进行克隆时有很多同学都失败了,后来大家总结下来就是网速太慢会导致克隆失败,克隆时对于网速的要求比较高。大多数同学都是自己开热点完成的。
在编译时要注意Android的API的版本要与项目中的API要符合要不然会出现方法找不到方法的问题。
在运行时我就遇到了一个比较奇怪的问题,就是在运行时安装游戏的APK一直失败:
网上的又一个帖子帮我解决了这个问题与adb相关的问题,比如掉线问题、Android Studio 提示Session 'app':Error Installing APK、找不到设备我在取消了下面界面红框选项的勾选只有问题就得到了解决。
项目二
题目
1. 在小组项目中,找一个合适的地方添加一个按钮,点击显示自己的学号
2. 提交运行截图(全屏,要有学号信息)
3. 在项目中找一个界面,自己复制一份命名为XXXbak,修改代码,替换原来的部分
4. 提交运行截图(全屏,要有学号信息)
分析
在我们的游戏中只有一个主界面有布局文件,在不觉文件中加按钮是最简单的所以我就在我们的菜单类的活动加入了有学号的按钮
结果
项目三
分析小组代码:
1. 数据结构的应用情况及相关代码
2. 排序算法的应用情况及相关代码
3. 查找算法的应用情况及相关代码
4. 完成实验报告
分析
在我们小组的代码中用的最多的数据结构应该是二维数组,在游戏布局的时候没用布局文件二是用绘图类来实现游戏界面的布局,所以就用二维数组将整块画布数字化来使老鼠出现在正确的地点如下是其中一个方法。
private int[][] getMapArrayByStr(String str, int rowSize, int colSize){
mapArray = new int[rowSize][colSize];// 确定地图的行数与列数
str = str.replace(" ", "");//用空串取代字符串(去掉空格)
String[] arr = str.split(",");//将字符串用“,”为结点划分
int temp ;
int max = 0;
for(int row=0; row<rowSize; row++){
for(int col=0; col<colSize; col++){
temp = row*colSize + col;
mapArray[row][col] = Short.valueOf(arr[temp]);
max = mapArray[row][col]>max?mapArray[row][col]:max;
}
}
Const.randomMax = max;
return mapArray;//返回数字地图
线性列表也是我们用到另一个数据结构,主要是用来储存点击的横坐标和纵坐标。
if(randShow>0.6){
uda = new UpDownAnima(imgDishu, imgDidong, 100, 8, (int) (col*Const.CURRENT_BLOCK_WIDTH), (int) (row*Const.CURRENT_BLOCK_HEIGHT), true);
}else if(randShow>0.2){
uda = new UpDownAnima(imgDishu2,imgDidong, 100, 8, (int) (col*Const.CURRENT_BLOCK_WIDTH), (int) (row*Const.CURRENT_BLOCK_HEIGHT), true);
}else{
uda = new UpDownAnima(imgMe,imgDidong, 100, 8, (int) (col*Const.CURRENT_BLOCK_WIDTH), (int) (row*Const.CURRENT_BLOCK_HEIGHT), false);
}
uda.setRow(row);
uda.setCol(col);
udaList.add(uda);
对于排序算法来说我们并没有使用我们自己编写的代码,在实现排行榜的时候就需要用到排序但是为了游戏代码的简洁性我们用到了Arraays类里的sort方法来排序;
if (number.length != 0){
Arrays.sort(number,Collections.reverseOrder());
ranklist=new String[userList.size()];
for (int i=0;i<userList.size();i++){
Log.d("分数:",""+number[i]);
ranklist[i]=String.valueOf(number[i]);
}
在这个方法中用到方法的简介如下图:
这两个方法就很好的完成了我们需要的给从数据库里调出来的数据进行排序的目的
对于查找算法来说我们没有用到很复杂的查找算法,是直接用穷举的方法来找出。