zoukankan      html  css  js  c++  java
  • 第二次结对编程作业

    结对同学博客链接:https://www.cnblogs.com/yexiuk/p/11681648.html

    本次作业博客链接:https://edu.cnblogs.com/campus/fzu/SE_FZU_1917_K/homework/8664

    仓库:https://github.com/yexiu1/13

    视频链接:https://www.bilibili.com/video/av73226314/

    分工

    邓志雄:主要负责UI部分

    林小棠:主要负责算法部分

    PSP

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划 40 50
    Estimate 估计这个任务需要多少时间 40 50
    Development 开发 1380 1560
    Analysis 需求分析 (包括学习新技术) 240 320
    Design Spec 生成设计文档 60 30
    Design Review 设计复审 20 20
    Coding Standard 代码规范 (为开发制定合适的规范) 30 20
    Design 具体设计 100 120
    Coding 具体编码 400 430
    Code Review 代码复审 180 120
    Test 测试 (自我测试,修改,提交修改) 350 500
    Reporting 报告 60 60
    Test Report 测试报告 20 20
    Size Measurement 计算工作量 10 10
    Postmortem & Process Improvement Plan 事后总结 并提出过程改进计划 30 30
    合计 2960 3340

    解题思路描述与设计实现说明

    • 网络接口的使用

      url = 'https://api.shisanshui.rtxux.xyz/game/open'
      headers = {'X-Auth-Token': "8f0a52a2-540b-4d29-a035-746f71a7c1c3"}
      response = requests.post(url,  headers = headers) 
      response_dict = response.json()
      card = response_dict['data']['card'].split(' ')
      return card
      

      根据所给的接口调用post或者get方法,其余用法与上面类似

    • 代码组织与内部实现设计

      img

    • 说明算法的关键与关键实现部分流程图

    关键代码解释

    以后墩和中墩的同花顺为例,将拿到的手牌先按花色排列,再按大小排列,调用p1函数,如果有同花顺,便可将同花顺输出,并返回剪切同花顺后的手牌。

    性能分析与改进

    判断是否为特殊牌型,是就直接输出,不然就按规则依次找出后墩,中墩,前墩。

    存在问题:有可能会出现类似田忌赛马的问题,后墩太大,导致中墩,前墩赢不过别人。

    改进:如果后墩有葫芦,则将最大的对子放置中墩;其余的情况还未改进。

    性能分析图:

    img

    单元测试

    public static void main(String[] args) {
            List<Card> allCards = new ArrayList<>();
            Random random = new Random();
            CardController cardController = new CardController();
            for (int i = 1;i <= 4; i++){
                for (int j = 1; j <= 13; j++){
                    allCards.add(new Card(j,i));
                }
            }
        for (int i = 0; i < 10; i++){
            List<Card> tempCards = new ArrayList<>();
            List<Card> cards = new ArrayList<>();
            tempCards.addAll(allCards);
            for (int j = 0; j < 13; j++){
                Card card = tempCards.get(random.nextInt(52 - j));
                cards.add(card);
                tempCards.remove(card);
            }
            String cardStr = "";
            for (int j = 0; j < 13; j++){
                Card card = cards.get(j);
                cardStr += card.toString();
                if (j < 12)
                    cardStr += " ";
            }
            JSONObject jsonObject = new JSONObject();
            try {
                jsonObject.put("id",0);
                jsonObject.put("card",cardStr);
            } catch (JSONException e) {
                e.printStackTrace();
            }
    
            System.out.println(cardController.card2(jsonObject.toString()));;
    
        }
    }
    

    每次随机构造13张牌,并且转化为符合接口参数格式的字符串,再调用接口方法,打印出结果

    Github代码签入记录

    结对困难及解决方法

    • 问题描述

      python没接触过,完全从零开始;调用接口也是一脸懵逼

    • 做过哪些尝试

      从网上和b站上看教程、找方法,快速入门python,学习ui的设计、切换不同页面等等,还有从网上找资料调用接口,写算法

    • 是否解决

      基本解决

    • 有何收获

      了解了python,学习了ui的设计。

    评价你的队友

    评价邓志雄:

    值得学习的地方:志雄哥总是不紧不慢的,但是最后关头很靠谱

    需要改进的地方:跟我一样都是拖延症患者,能不动就不动

    评价林小棠:

    值得学习的地方:小棠同学的学习能力很强。才刚入门Python,就可以做出很多东西,很厉害。除了学习之外,特别是他专注一件事的能力我很佩服,我总是会被很多事情分心。
    需要改进的地方:代码能力还需要加强,毕竟刚学,会变强的。

    学习进度条

    第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
    1 0 0 3 3 了解原型开发工具Axure RP9
    2 0 0 25 28 了解算法,速成python
    3 1000 1000 30 58 编写算法
    4 200 1200 15 72 微调算法
  • 相关阅读:
    WPF GridControl单元格值与过滤值相同时,改变单元格背景色
    WPF 新手引导
    WPF 使用QRCoder生成二维码
    WPF MaterialDesignInXamlToolkit锁屏恢复后页面冻结的问题
    MVVM Caliburn.Micro学习记录
    手机分辨率DPI怎么计算
    SQLite数据类型
    Android给Viewpager默认指定页
    Android 禁止Viewpager左右滑动功能
    JAVA中获取当前系统时间
  • 原文地址:https://www.cnblogs.com/LIN5516558/p/11681637.html
Copyright © 2011-2022 走看看