第二次结对编程作业

第二次结对编程作业

“福建赌王”之争


队友的博客
此次作业博客
GitHub地址

  • 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
  • 解题思路描述与设计实现说明

  1. 网络接口的使用:
  • 使用Python的requests库发送请求,获取数据解析数据
  1. 代码组织与内部实现设计:
  • 分为UI和出牌算法两部分,使用python的pygame库编写控件实现UI
  1. 算法的关键:
  • 权值比对:
  • 每位玩家的手牌有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部分,并且在网上寻找一些资料进行相关的学习了解。
是否解决:已解决
有何收获
收获颇丰,实践出真知,与其说把十三水的规则看个十遍百遍,不如来一局紧张刺激的宿舍实战。通过实践
学习知识是最快的捷径!

原文地址:https://www.cnblogs.com/shenkay/p/11681725.html