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

    第二次结对编程作业

    1.链接

    (1)结对同学的博客链接(玛尔孜亚)

    (2)结对同学的博客链接(黄斌敏)

    (3)本作业的博客链接

    (4)Fork的同名仓库的Github项目地址


    2.具体分工

    本次结对编程作业分工如下:

    • 玛尔孜亚负责前端,即全部UI的实现。
    • 黄斌敏负责后端,即全部算法的实现。
    • 刘烨负责网络接口。

    3.PSP表格

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

    4.解题思路描述和设计实现说明

    (1)网络接口的使用

    使用python的requests库发送请求,获取数据,解析数据。

    利用requests自带的json()解析数据。

    (2)代码组织与内部实现设计

    类图

    函数

    (3)说明算法的关键与关键实现部分流程图

    算法关键是每位玩家的手牌有13张,于是每个人的手牌一共有13的阶乘种的排列方式。把所有的排列方式储存起来,然后前3张就是前墩,中间的5张就是中墩,最后的5张就是后墩,注意的是要求后墩>中墩>前墩,通过对十三水每种牌型进行设置权值,得到他们的权值,计算一下手牌的权值总和,取权值最大的牌。

    关键实现部分流程图


    5.关键代码解释

    权值判断

     对十三水每种牌型进行设置权值,紧接着对每种排列的前中后墩判断,通过每一墩的牌型,得到他们的权值,计算一下手牌的权值总和


    6.性能分析与改进

    (1)改进的思路

    遍历所有的情况,然后从中选取权值最大的一种,遍历所有情况耗时太久,可能导致超时。

    (2)性能分析图和程序中消耗最大的函数


    7.单元测试

    测试数据:随机生成,不特意构造
    测试思路:利用随机生成的数据进行测试,可完成对其实用性和可靠性检测


    8.Github的代码签入记录

     


    9.遇到的代码模块异常或结对困难及解决方法

    9.1问题描述

    1.不会调用接口,不会设置背景图,背景图会掩盖文本或输入框。
    2.一开始不知道怎么把不同花色和不同牌面的牌进行解析

    9.2做过哪些尝试

    有问题上百度,CSDN和博客园有很多教程。

    9.3是否解决

    全部解决

    9.4有何收获

    这次第一次写完的时候,由于在开始编程之前有很多细节没有考虑进去,又花费时间去修改算法。所以在某一项目的准备阶段,要尽量把所有容易忽略的细节问题考虑清楚,养成良好习惯。


    10.评价你的队友

    玛尔孜亚:

    • 值得学习的地方:很有耐心,脾气很好,善于沟通,做事非常认真。
    • 需要改进的地方:一起努力学代码!

    黄斌敏:

    • 值得学习的地方:认真细心,能发现我的一些漏洞,还有文笔好。
    • 需要改进的地方:共同提升自己的代码能力。

    11.学习进度表

    第N周新增代码(行)累计代码(行)本周学习耗时(小时)累计学习耗时(小时)重要成长
    1 0 0 10 10 学会mockplus使用方法
    2 431 431 15 23 掌握的pygame的大部分用法,将基本的前端功能实现了。
    3 210 641 13 36 简化了扑克牌的载入和显示,将完成度提高。
    4 116 757 7 43 与后端对接,完成了所有代码工作,学习了网络接口的知识
  • 相关阅读:
    poj 3528 (三维几何求凸包+凸包表面积)
    dijkstra模板(好像是斐波那契额堆优化,但我为什么看起来像优先队列优化,和spfa一样)
    最大空凸包模板
    ICPC 2017–2018, NEERC, Northern Subregional Contest St Petersburg, November 4, 2017 I题
    hdu 5248 序列变换
    hdu 2063(二分图模板测试)
    组合数
    85. Maximal Rectangle 由1拼出的最大矩形
    750. Number Of Corner Rectangles四周是点的矩形个数
    801. Minimum Swaps To Make Sequences Increasing 为使两个数组严格递增,所需要的最小交换次数
  • 原文地址:https://www.cnblogs.com/liuye2019/p/11739498.html
Copyright © 2011-2022 走看看