第二次结对编程做业

1、连接

结对同窗博客连接(刘伟楠)html

本次做业博客连接前端

GitHub项目地址python

2、具体分工

前端: 刘伟楠git

后端: 林易丰github

博客: 两人共同完成算法

3、PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20 15
· Estimate · 估计这个任务须要多少时间 20 15
Development 开发 780 720
· Analysis · 需求分析 (包括学习新技术) 160 160
· Design Spec · 生成设计文档 120 130
· Design Review · 设计复审 40 40
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 60 60
· Design · 具体设计 60 120
· Coding · 具体编码 80 80
· Code Review · 代码复审 20 20
· Test · 测试(自我测试,修改代码,提交修改) 30 45
Reporting 报告 40 40
· Test Report · 测试报告 10 10
· Size Measurement · 计算工做量 10 10
· Postmortem & Process Improvement Plan · 过后总结, 并提出过程改进计划 40 45
· 合计 1590 1510

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

1. 网络接口的使用

以注册绑定为例:json

def registerbang(self):
    def register_(user, psw, student_number, student_password):
        url = 'http://www.revth.com:12300/auth/register2'
        headers = {
            'Content-Type': 'application/json'
        }
        data = {
            'username': user,
            'password': psw,
            "student_number": student_number,
            "student_password": student_password
        }
        r = requests.post(url, headers=headers, data=json.dumps(data))
        return r

    r = register_(self.user, self.psw, self.student_number, self.student_password)
    status = r.json()['status']
    if status == 0 and 'user_id' in r.json()['data']:
        self.user_id = r.json()['data']['user_id']
        self.is_register = True
        print('register may be successful')
        print(r.text)
    else:
        print('register failed!')
        error_report(status)
        print(r.text)

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

AI部分代码组织设计

api部分代码组织设计
后端

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

算法的关键就是AI。由于太菜,以前想过列出七万多种状况分别计算权值,可是难度比较大,因此AI部分采起了依次找同花顺,葫芦,炸弹,同花,顺子,三条,若找到则给后墩,若多于一个则再给中墩,余下三张牌做为前墩。若找不到则按从大到小排序,将牌按大小依次给后墩,中墩,前墩。

上图为部分流程图,主要思路就是分别寻找同花顺,葫芦,炸弹,同花,顺子,三条,优先给后墩,其次给中墩,剩下三张做为前墩。api

5、关键代码解释

有价值/重要的代码

都有价值都重要……
举个炸弹的例子:
bmax和mid分别存放大小炸弹的数字(若是有)网络

if len(s) == 26:
            if len(bomb_num) == 3:  # 3个炸弹
                bmax = bomb_num[0]
                if bomb_num[1] > bmax:
                    bmax = bomb_num[1]
                if bomb_num[2] > bmax:
                    bmax = bomb_num[2]  #最大给后墩
                # 中间给中墩
                if bomb_num[0] == bmax:
                    if bomb_num[1] < bomb_num[2]:
                        mid = bomb_num[2]
                    else:
                        mid = bomb_num[1]
                if bomb_num[1] == bmax:
                    if bomb_num[0] < bomb_num[2]:
                        mid = bomb_num[2]
                    else:
                        mid = bomb_num[0]
                if bomb_num[2] == bmax:
                    if bomb_num[1] < bomb_num[0]:
                        mid = bomb_num[0]
                    else:
                        mid = bomb_num[1]
                return 2
            elif len(bomb_num) == 2:  # 2个炸弹
                bmax = bomb_num[0]
                if bmax < bomb_num[1]:
                    bmax = bomb_num[1]
                    mid = bomb_num[0]
                else:
                    mid = bomb_num[1]
                return 2
            elif len(bomb_num) == 1:  # 1个炸弹
                bmax =  bomb_num[0]
                return 1
            else:
                return 0  # 没炸弹
        else:  # 找给中墩
            if len(bomb_num) == 2:  # 2个炸弹
                mid = bomb_num[0]
                if mid < bomb_num[1]:
                    mid = bomb_num[1]
                return 2
            elif len(bomb_num) == 1:  # 1个炸弹
                mid =  bomb_num[0]
            else:
                return 0  # 没炸弹

6、性能改进与分析

1. 改进思路

优化规范一下各个找牌函数,以前由于缺乏事先的构思,致使主函数里还须要许多逻辑判断和分支。

2. 展现性能分析图和程序中消耗最大的函数


7、单元测试

找同花顺函数:

构造思路就是把找特殊牌的函数拿出来单独对牌测试一下

8、贴出GitHub的代码签入记录

9、遇到的代码模块异常或者结对困难及解决办法

1. 问题描述:

判断语句时发现函数返回值不对

2. 尝试:

逐次输出看看

3. 是否解决:

4. 有何收获:

先把找牌的函数返回值赋给一个变量,用变量判断,否则屡次使用至关于屡次调用,结果不同,也耗时

10、评价个人队员

1. 值得学习的地方

队友比较fashion,审美也比较好,心态也比较好,原型画得也好

2. 须要改进的地方

代码能力,学习热情

11 学习进度条

第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 重要成长
1 1000 1000 20 写了AI,布局构思不充分,重复太多,代码过长
2 400 1400 12 找bug和写API
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息