• 20162302 实验五《数据结构综合应用》实验报告


    实 验 报 告

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

    姓名:杨京典

    班级:1623

    学号:20162302

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

    实验器材:装有IdeaU的联想拯救者15ISK


    实验目的与要求:

    1.编译运行测试
    2.代码修改
    3.代码分析

    实验内容、步骤与体会:

    实验内容:


    编译运行测试

    • 点击红色圈出来的地方
    • 选择虚拟机也可以选择连在usb上的物理机,在这里就选择虚拟机
    • 运行成功

    • 测试按下方向键会向不同方向移动,并记录按键步数
    • 把箱子推到指定位置会出现过关画面并播放一小段音乐

    代码修改

    • 增加按键效果
      原来的代码是
            choose.setOnClickListener(new View.OnTouchListener() {
                @Override
                public void onTouch(View v) {
                        Intent intent = new Intent(MainActivity.this, GameOption.class);
                        startActivity(intent);
                }
            })
    

    setOnClickListener改为setOnTouchListener以获取点击抬起来的事件。在按下的时候更换图片,在抬起来后更换新的图片。

            choose.setOnTouchListener(new View.OnTouchListener() {
                @Override
                //设置监听事件
                public boolean onTouch(View v, MotionEvent event) {
                    if (event.getAction() == MotionEvent.ACTION_DOWN) {
                        //更改为按下时的背景图片
                        v.setBackgroundResource(R.mipmap.chooes1);
                    } else if (event.getAction() == MotionEvent.ACTION_UP) {
                        //改为抬起时的图片
                        v.setBackgroundResource(R.mipmap.chooes);
                        //新建一个本活动到排行榜界面的intent
                        Intent intent = new Intent(MainActivity.this, GameOption.class);
                        //启动这个intent
                        startActivity(intent);
                    }
                    return false;
                }
            });
    
    • 增加新的关卡
      这一更改相对来说要简单得多,关卡以二维数组的形式存储在GameLevels里面,增加关卡首先要增加一个二维数组。
        public static final int [][] LEVEL_11 = {
                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0,0 ,0 ,0 ,0, 0, 0,  0, 0, 0, 0},
                {0, 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0, 0 ,0, 0, 0, 0},
                {0, 0, 0, 0, 0 ,5 ,1 ,4 ,1 ,1 ,1, 2, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0, 0, 0, 0},
                {0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 ,0 ,0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0 ,0, 0 ,0 ,0 ,0 ,0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
        };
    

    然后把这一关卡加到list里面

    OriginalLevels.add(LEVEL_11);
    

    运行结果

    代码分析

    • 主界面是MainActivity上面有四个按键是到各个界面的枢纽。
    • SysApplication类实现了对活动的管理,把所有的活动都放到list里面,在结束活动的时候可以逐一结束所有活动。
    • 选项按钮连接到GameOption活动,可以实现对于音乐的打开和关闭。
    • 开始按钮连接到GameLevelActivity界面,这个按钮是选关按钮,这个界面使用ArrayAdapter自动生成相应关卡数目的按钮。
    • 这一方法调用GameLevels类,这个类是用来储存关卡的,可以获取所点击到的相应的关卡数。
    • 然后将获取的二维数组传递到下一活动GameActivity,这一活动是负责关卡的核心,调用GameState进行矩阵运算实时生成新的矩阵。
    • GameBitmaps类负责将矩阵实时转换成图像界面。
  • 相关阅读:
    MySQL性能优化的最佳20+条经验
    最新 DEDECMS SQL 注入 0day
    PHP开发程序应该注意的42个优化准则
    PHP面向对象(OOP)编程入门教程
    【PHP面向对象(OOP)编程入门教程】23.自动加载类 __autoload()函数
    【PHP面向对象(OOP)编程入门教程】22.把对象串行化serialize()方法,__sleep()方法,__wakeup()方法
    【PHP面向对象(OOP)编程入门教程】21.多态的应用
    家族企业的常青之道——leo鉴书68
    Windows消息传递机制具体解释
    Computer Vision and Machine Learning Competitions
  • 原文地址:https://www.cnblogs.com/yangjingdian/p/8051711.html
Copyright © 2020-2023  润新知