zoukankan      html  css  js  c++  java
  • 20162322 朱娅霖 实验报告五

    实验五 数据结构综合应用

    课程名称:《程序设计与数据结构》
    学生班级:1623班
    学生姓名:朱娅霖
    学生学号:20162322
    实验时间:2017年12月15日
    实验名称:数据结构综合应用
    指导老师:娄嘉鹏、王志强老师

    0.目录

    - [数据结构综合应用-1](#1) - [数据结构综合应用-2](#2) - [数据结构综合应用-3](#3)

    数据结构综合应用-1

    ### 一、实验要求 1. git clone 小组项目 2. 编译项目,提交编译成功截图(全屏,要有学号信息) 3. 提交运行过程中的截图(全屏,要有学号信息)

    二、实验过程

    1. 由于我们组以前没有用android studio直接上传至码云,因此在实验前一天将先将代码传上去,参见或许是介绍Android Studio使用Git最详细的文章
    2. 将原来clone好的项目删掉,新建一个文件夹“20162322_ZYL_exp5”
    3. 在android studio中重新clone,将项目放在文件夹“20162322_ZYL_exp5”中
    4. 在android studio中运行该项目,会自动编译

    三、实验结果

    返回目录

    数据结构综合应用-2

    ### 一、实验要求 1. 在小组项目中,找一个合适的地方添加一个按钮,点击显示自己的学号 2. 提交运行截图(全屏,要有学号信息) 3. 在项目中找一个界面,自己复制一份命名为XXXbak,修改代码,替换原来的部分 4. 提交运行截图(全屏,要有学号信息)

    二、实验结果



    返回目录

    数据结构综合应用-3

    ### 一、实验要求 分析小组代码: 1. 数据结构的应用情况及相关代码 2. 排序算法的应用情况及相关代码 3. 查找算法的应用情况及相关代码 4. 完成实验报告

    二、实验内容

    1. 数据结构的应用情况及相关代码
    二维矩阵:在地图显示设置的时候运用到了二维矩阵。

    public static int [] Steps;
        public static final int FLOOR = 1;              //地板
        public static final int NOTHING = 0;         //没有
        public static final int BOX = 4;             //该单元格放的是箱子
        public static final int FLAG = 2;            //红旗,表示箱子的目的地
        public static final int MAN = 5;              //搬运工
        public static final int WALL = 3;             //墙
        public static final int MAN_FLAG = 5;        //搬运工 + 小球
        public static final int BOX_FLAG = 6;        //箱子 + 小球
    
        public static final int [][] LEVEL_1 = {
                {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, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 3, 1, 3, 3, 3, 3, 0, 0, 0, 0},
                {0, 0, 0, 0, 3, 3, 3, 4, 1, 4, 2, 3, 0, 0, 0, 0},
                {0, 0, 0, 0, 3, 2, 1, 4, 5, 3, 3, 3, 0, 0, 0, 0},
                {0, 0, 0, 0, 3, 3, 3, 3, 4, 3, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 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}
        };
    

    栈:在初始化地图的时候运用到了栈。

     public GameState(int[][] initialState){
            //获得的地图数组
            mLabelInCells = initialState;
            //新建一个栈
            stack = new Stack<>();
            //生成一个地图大小的数组
            temp = new int[initialState.length][initialState[0].length];
    
            for (int i = 0; i < initialState.length; i++)
                for(int j=0;j<initialState[i].length;j++) {
                    temp[i][j] = initialState[i][j];
                    mLabelInCells[i][j] = initialState[i][j];
                }
            get_gongren_chushi_weizhi();   //根据游戏开局初始化搬运工的位置
        }
    

    2. 查找算法的应用情况及相关代码
    线性查找:在绘制地图时运用到了线性查找。

    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;
                    }
                }
        }
    

    返回目录

  • 相关阅读:
    10、HTTP请求方法你知道多少?
    9、为什么服务器会缓存这一项功能?如何实现的?
    7、HTTP长连接和短连接的区别 8、什么是TCP粘包/拆包?发生的原因?
    zzulioj--1719--小胖的疑惑(整数划分+dp打表)
    nyoj--27--水池数目(dfs)
    hdoj--1016--Prime Ring Problem(递归回溯)
    zzulioj--1777--和尚特烦恼3——何时能下山(水题)
    zzulioj--1708--01串也疯狂之光棍也有伴(dp)
    zzulioj--1707--丧心病狂的计数(水题)
    zzulioj--1711--漂洋过海来看你(dfs+vector)
  • 原文地址:https://www.cnblogs.com/zyl905487045/p/8053825.html
Copyright © 2011-2022 走看看