结对同窗博客连接(林易丰)html
本次做业博客连接前端
GitHub项目地址python
前端: 刘伟楠git
后端: 林易丰github
博客: 两人共同完成算法
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 |
以注册绑定为例: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)
AI部分代码组织设计
api部分代码组织设计
后端
算法的关键就是AI。由于太菜,以前想过列出七万多种状况分别计算权值,可是难度比较大,因此AI部分采起了依次找同花顺,葫芦,炸弹,同花,顺子,三条,若找到则给后墩,若多于一个则再给中墩,余下三张牌做为前墩。若找不到则按从大到小排序,将牌按大小依次给后墩,中墩,前墩。
上图为部分流程图,主要思路就是分别寻找同花顺,葫芦,炸弹,同花,顺子,三条,优先给后墩,其次给中墩,剩下三张做为前墩。api
林易丰 21:46:58网络
都有价值都重要……
举个炸弹的例子:
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 # 没炸弹
优化规范一下各个找牌函数,以前由于缺乏事先的构思,致使主函数里还须要许多逻辑判断和分支。
找同花顺函数:
构造思路就是把找特殊牌的函数拿出来单独对牌测试一下
一、问题描述:后端接入的代码没法展示在UI上
二、尝试:理解后端传入的API参数,从新写过展现界面的函数。
三、是否解决: 是
四、有何收获:更加熟悉python这门演唱会
队友写代码的能力比较强,逻辑比较清晰
沟通能力能够稍稍增强
第N周 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 重要成长 |
---|---|---|---|---|
1 | 223 | 223 | 10 | 熟悉python |
2 | 219 | 442 | 11 | 了解pygame |