第二次结对编程作业

第二次结对编程作业


链接

结对同学的博客链接:https://www.cnblogs.com/Sugar-Chl/p/11726670.html
本作业博客的链接: https://www.cnblogs.com/Sugar-Chl/p/11726670.html
Github项目地址:https://github.com/SugarChl/ThirteenWater

具体分工

PSP表格

PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟)

  • | :-: | :-: | :-: | -:
    Planning |计划| 30| 20
    Estimate| 估计这个任务需要多少时间 |20| 30
    Development| 开发 |600 |600
    Analysis | 需求分析 (包括学习新技术)| 120| 200
    Design Spec | 生成设计文档 |20| 20
    Design Review |设计复审 |30| 30
    Design | 具体设计 |60| 100
    Coding | 具体编码 | |
    Code Review | 代码复审|20 |20
    Test | 测试(自我测试,修改代码,提交修改)| |
    Reporting |报告| 60 |60
    Test Repor | 测试报告| |
    Size Measurement | 计算工作量| 20 |20
    Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划| 50 |45
    | | 合计|1030|1145

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

网络接口:

无网络接口的使用

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

算法的关键与关键实现部分流程图:

关键代码解释

def trans_cards(cards):
    F, N = [], []
    for card in cards:
        if card[1] == "J":
            N.append(11)
        elif card[1] == "Q":
            N.append(12)
        elif card[1] == "K":
            N.append(13)
        elif card[1] == "A":
            N.append(14)
        elif card[1:] == "10":
            N.append(10)
        else:
            N.append(int(card[1]))
        F.append(card[0])
    return F, N

该代码将牌型的列表,转化为花色,数字两个列表,有利于后续的操作。

性能分析与改进

改进的思路:

对于分牌的算法还有比较大的缺陷,可能会出现相公。然后对于各个牌型的匹配是按顺序从大到小进行的,性能上还有改进的空间。
后续可以把串行的牌型匹配改成并行的。这样就大大加快的分牌算法的性能。
同时还有对可能出现相公的情况进行规避

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

单元测试

测试代码:

测试的函数:

构造测试数据的思路:

遇到的困难及解决方法

困难描述

对于界面设计没有经验

解决尝试

通过百度、视频来学习相关知识,加深对界面设计的了解

是否解决

有何收获

碰到新知识时不要畏惧,要勇于挑战

评价队友

值得学习的地方:

队友非常负责任,认真完成了任务

值得改进的地方

队友对界面设计可以多加学习

学习进度条

第N周 | 新增代码(行)| 累计代码(行) |本周学习耗时(小时)|累计学习耗时(小时)|重要成长

  • | :-: | :-: | :-: |:-: |:-: |-:
    2|0|0|12|12|对代码编程有更深的理解
posted @ 2019-10-23 16:10  菠萝波  阅读(113)  评论(0编辑  收藏  举报