第二次结对编程作业
第二次结对编程作业
“福建赌王”之争
- UI展示地址
- 具体分工
AI部分:由我的队友林铮威负责。
UI部分:由我负责。
-
PSP
PSP2.1 Personal SoftwareProcess Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 40 · Estimate · 估计这个任务需要多少时间 2000 2800 Development 开发 1000 720 · Analysis · 需求分析 (包括学习新技术) 60 30 · Design Spec · 生成设计文档 30 30 · Design Review · 设计复审 60 40 · Coding Standard · 代码规范
(为目前的开发制定合适的规范)30 15 · Design · 具体设计 60 40 · Coding · 具体编码 600 432 · Code Review · 代码复审 180 144 · Test · 测试(自我测试,修改代码,提交修改) 120 80 Reporting 报告 30 30 · Test Repor · 测试报告 40 30 · Size Measurement · 计算工作量 15 45 · Postmortem & Process
Improvement Plan· 事后总结, 并提出过程改进计划 45 30 · 合计 4300 4560 -
解题思路描述与设计实现说明
- 网络接口的使用:
- 使用Python的requests库发送请求,获取数据解析数据
- 代码组织与内部实现设计:
- 分为UI和出牌算法两部分,使用python的pygame库编写控件实现UI
- 算法的关键:
- 权值比对:
- 每位玩家的手牌有13张,于是每个人的手牌一共有13的阶乘(13 x 12 x 11 x……1)这么多种的排列方式。我的想法便是把所有的排列方式储存起来,然后前3张就是前墩,中间的5张就是中墩,最后的5张就是后墩。通过对十三水每种牌型进行设置权值,紧接着对每种排列的前中后墩判断,通过每一墩的牌型,得到他们的权值,计算一下手牌的权值总和,那么,13!种的排列中权值最大的就是赢面最大的牌。
- 关键代码解释
权值判断:以同花顺与炸弹为例
-
性能分析与改进
比较仓促,来不及做
-
单元测试
-
Github的代码签入记录
-
106d Update README.md
-
0a71 Merge branch
-
ff3e Initial commit
-
1dea add card order
-
084c add widget
-
6e36 Fix unknown Boolean parameter confusion
-
a62a add res
-
3ec7 add .ignore
-
1e13 add requests
-
57af add img load
-
遇到的问题及解决方法
遇到的问题 :
刚开始接触题目的迷茫,我的天(这什么魔鬼题目...),对于十三水这个游戏毫无了解,以及对于这个作业如何完成感到无助。
做出的尝试:
与队友一起叫上舍友,打了一晚上紧张刺激的十三水,对于游戏的了解程度大大加深。
对于作业的完成在与队友的讨论过后,明确分工队友负责AI部分,我负责UI部分,并且在网上寻找一些资料进行相关的学习了解。
是否解决:已解决
有何收获:
收获颇丰,实践出真知,与其说把十三水的规则看个十遍百遍,不如来一局紧张刺激的宿舍实战。通过实践
学习知识是最快的捷径!