第二次结对编程作业

喜夏-厌秋 提交于 2019-12-01 10:17:35

1、在文章开头给出结对同学的博客链接、本作业博客的链接、你所Fork的同名仓库的Github项目地址(2分)

2、给出具体分工(2分)

  • 陈碧芬:负责UI界面设计以及UI接口连接
  • 黄森敏:负责后端代码的编写以及单元测试环节
  • 朱丽辰:负责后端服务器接口链接以及代码的完善

3、给出PSP表格(2分)

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 60 90
· Estimate · 估计这个任务需要多少时间 60 90
Development 开发 1020 1290
· Analysis · 需求分析 (包括学习新技术) 120 180
· Design Spec · 生成设计文档 60 30
· Design Review · 设计复审 30 60
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 30
· Design · 具体设计 240 360
· Coding · 具体编码 360 420
· Code Review · 代码复审 60 30
· Test · 测试(自我测试,修改代码,提交修改) 120 180
Reporting 报告 120 120
· Test Repor · 测试报告 30 30
· Size Measurement · 计算工作量 30 30
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 60 60
· 合计 1200 1500

4、解题思路描述与设计实现说明(15分)

  • 网络接口的使用(3分)
    api请求使用的是python里的request库
    以下贴出net_api.py文件中的主要函数
import requests

import cards_division

url='https://api.shisanshui.rtxux.xyz'
cards_list = []
max_list = []
def sign_in(username,password):

def register(username,password):

def logout():

def new_game_and_play():

def get_rank():

def get_history_list(limit,page):

def get_history_details(game_id):

if __name__=='__main__':
  • 代码组织与内部实现设计(类图)(6分)

    我们使用的是纯贪心算法,先出后墩和中墩代码,之后再根据后中墩牌型的类型在避免倒水的情况下出头墩,在后中墩代码实现过程中尽量使牌面平衡,三墩牌面尽量都大

  • 说明算法的关键与关键实现部分流程图(6分)

算法关键:

# 获取牌型桶
def getBucket(arr_card):

# 统计同数值花色的多少并统计同花色数值的多少
def CardVal(cards_):

# 判断同花顺 判断同花个数 在判断有无联顺much个
def CardsTHS(cards_, much):

# 后墩,中墩出牌函数
def judge5(_post, _pai, card):

# 进行头墩出牌函数
def judge3(_post1, _post2, _pai, card, ty1, ty2): 

# 将自己处理好的代码进行转换发送至服务端
def zhuanCards(chu, much):    

# 出牌主函数
def divide_cards(cards_list):

5、关键代码解释(3分)

  • 贴出你认为重要的/有价值的代码片段,并解释(3分)

6、性能分析与改进(6分)

  • 描述你改进的思路(5分)
  • 展示性能分析图和程序中消耗最大的函数(1分)

7、单元测试(5分)

  • 展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路

8、贴出Github的代码签入记录(1分)

  • 请合理记录commit信息

9、遇到的代码模块异常或结对困难及解决方法(8分)

  • 问题描述(2分)
    1.对出牌的技巧不够熟练,多种牌型不同组合虽然不保证每一墩都最大,但是尽可能让多的墩赢,这方面思路比较匮乏
    2.半路上车python,有些地方只是初步了解,对接口的使用等等完全没有接触过,一头雾水不知道如何去做
  • 做过哪些尝试(2分)
    1.刚开始考虑使用组合算法,利用C(13,5),C(8,5)对后墩中墩的牌进行遍历,得到一个评分表,最后统一计算全值,选出最优牌,奈何评分系统想不出合理的方案,故放弃,转用纯贪心算法。
    2.利用搜索引擎得到python中requests库的使用方法,使接口问题得到解决参考资料
  • 是否解决(2分)
    1.最后勉强完成了算法,算是写出来了
    2.感谢教程,问题解决
  • 有何收获(2分)
    1.同一种问题可能有多种解决的方法,有些方法更优但是不会使用,求真务实,学会放弃,只求顺利完成出牌
    2.搜索引擎妙啊,很多python不会使用的问题都可以靠它速成

10、评价你的队友(4分)

  • 值得学习的地方(2分)
    1.朱丽辰:很多细节方面考虑的比较仔细清晰,能提供一些独特的想法。
    2.陈碧芬:组内行动力max,经常在群里带动大家开始赶进度!我们才能没有在ddl前一天才开始学习!行动标杆。
  • 需要改进的地方(2分)
    1.朱丽辰:
    2.陈碧芬:

11、学习进度条(2分)

第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
1 0 0 5 5 学习一些JavaScript知识
2 200 200 5 10 学习一些接口知识,理清楚出牌思路
3 400 600 10 25 实现出牌算法,并对一些问题进行修复,学到了很多python算法
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!