实验五实验报告

实验五

实验项目

分析系统架构

系统架构图
OKsXQ.png

编译、运行、测试系统

首先我在我的电脑里建立了有名称要求的文件夹,然后打开Android Studio clone了我们的小组项目。
Oulrj.png
此处因为已经clone过了,所以无法再把这个项目clone进去
OuNGT.png
进行编译,运行,测试均正常
OuRzD.png
OufQe.png

修改系统

我在游戏主界面加载了一个toast,点击可以短暂地显示我的学号信息
OubJf.png

首先在封面文件里我修改了游戏封面的布局文件,加载了一个按钮,它的各方面属性和已有的两个差不多,只改变了它的id和按钮文本
OuodI.png

然后在相应的活动类里面,注册好这个按钮之后,我在点击处理的结构里加载了这个按钮点击后显示toast的属性。toast文本就是我的学号姓名,设置的是短暂显示。
OuvLj.png

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

我们的车辆选择和音乐选择里面涉及了查找算法,这次上述三项主要也是运用了线性查找的算法,在searching类里

//线性查找方法
    public static int  linearSearch(String[] data, String target){
        boolean judge = false;
        int index =0;
        while (index < data.length){
            if(data[index].equals(target)){
                judge = true;
                break;
            }
            index++;
        }
        if (!judge){
            index = -1;
        }
        return index;
    }

并且在MusicChoosing活动类里运用:

    public void onClick(View view) {
        if (view.getId()== R.id.music_searchBtn){
            String target = findSong.getText().toString();
            int resultIndex = Searching.linearSearch(songName,target);
            if (resultIndex!=-1){
                StartGame.putExtra("songID",songID[resultIndex]);
                StartGame.putExtra("carID",idReceiver.getStringExtra("carID"));
                startActivity(StartGame);
                finish();
            }else {
                Toast.makeText(this,"曲目不存在",Toast.LENGTH_SHORT).show();
            }
        }
    }

本来都是可以通过触碰来选择的,不过我们加载了文本框,可以让用户通过输入文字索引来查找。
OKMY6.md.png

在游戏里运用最多的是数组,比如刚才查找算法的songID,carID都是储存在数组里进行查找的。子弹bullet类的实现方式也是将子弹位图文件所在的数组clone出来,每出现一个就从clone数组里面拿出来一个呈现在画面上,同时再clone一个新的子弹数组,再取出...这样循环往复,不会出现子弹用尽的问题。

posted @ 2017-12-17 23:29  162315  阅读(131)  评论(0编辑  收藏