第二次结对编程作业
github地址:https://github.com/simplipy/031702408/releases/tag/十三水
结对同学的博客链接:https://www.cnblogs.com/Jardinxin/p/11674165.html
本作业博客的链接:https://www.cnblogs.com/buddlysue/p/11681373.html
一、具体分工
登陆注册 | 当前战况 | 排行榜 | 往期对战结果 | 详细历史战况 | ai | 交互 | |
陈苏苏 | √ | √ | √ | √ | |||
严欣 | √ | √ | √ | √ |
二、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 120 | 120 |
Estimate | 估计这个任务需要多少时间 | 120 | 120 |
Development | 开发 | 1090 | 2900 |
Analysis | 需求分析(包括学习新技能) | 540 | 600 |
Design Spec | 生成设计文档 | 50 | 30 |
Design Review | 设计复审 | 10 | 10 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
Design | 具体设计 | 50 | 90 |
Coding | 具体编码 | 1080 | 2000 |
Code Review | 代码复审 | 120 | 100 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 50 |
Reporting | 报告 | 50 | 60 |
Test Repor | 测试报告 | 20 | 30 |
Size Measurement | 计算工作量 | 10 | 10 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 20 | 20 |
三、解题思路描述与设计实现说明
🎈1、网络接口的使用
(1)前端通过调用js文件来调用接口
(2)js文件使用Ajax定义事件,从前端获取数据后将数据传到服务端,并把服务端respond的数据返回,判断后产生弹窗提示
🎈2、代码组织与内部实现设计(类图)
函数名 | 作用 |
---|---|
Compare() | 对13张牌 的数值进行排序 |
Count() | 遍历数组,将不同花色、数值的数量进行统计 |
Sort() | 对手中的牌(排除特殊牌型之后)进行分类并记录 |
Choose() | 从分类中的牌型中选出最佳底中上墩 |
🎈3、说明算法的关键与关键实现部分流程图
排除特殊牌型,普通牌型就是不断用判断同花色的个数、数值大小进行区分,计算同花色、同数值的个数,选择合适的出牌方式。
四、关键代码解释
主要实现的功能是类排序:通过compareTo的重写进行类排序。
五、性能分析与改进
改进的思路
由于时间不够我们没能写出可以正确排序的算法,但是大致的思路是先区分牌的花色、数值,按照数值大小进行排序,然后统计有多少同花色、有多少对子三条能组成多少普通牌型,按照大小分墩。前端方面,接口暂时实现了三个页面,历史详细战况还没能实现,需要再尝试。
展示性能分析图和程序中消耗最大的函数
六、单元测试:展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路
示例一:针对特殊牌型(目的是测试能否识别特殊牌型)
输入: *6 *5 *9 &K &2 *3 $8 $9 &A &J *2 &7 $5
输出:
$5 $8 $9 ,
*2 *3 *5 *6 *9 ,
&2 &7 &J &K &A
示例二:常见牌型(目的是测试能否排序普通牌型)
输入:#2 $5 #K $8 #9 $3 $10 &4 $7 *4 #4 $J &K
输出:
#2 #9 $10 ,
$3 $5 $7 $8 $J ,
&4 #4 *4 #K &K
七、贴出Github的代码签入记录:请合理记录commit信息
陈苏苏
严欣
八、遇到的代码模块异常或结对困难及解决方法
🎈1、问题描述
(1)html学过但是css不会:写出来的页面都最原始最丑!
(2)交互问题:我们真的不会交互!真的不会!太痛苦了!从开始学习交互,我们经历了:不知道要怎么用接口 ——→ 和服务器连接不上 ——→ 从前端提取数据无法传到后端 ——→ 实现登陆注册交互(但其他还是无法使用)
(3)算法:牌面排序错误(可以对1~10的数字进行排序,但是J\Q\K\A无法实现排序,即使设置了值也没办法)
🎈2、做过哪些尝试
(1)上网学css(感谢“菜鸟教程”很方便查css还可以顺便看html)
(2)请教大佬+上网查教程+自己摸索:我们问了同组的其他小队大佬们,大佬们很耐心的回答,还把代码借给我们看虽然我们看不懂。之后我们上网查找相关的资料,想看看别人是怎么交互怎么使用接口的,也尝试将别人的代码与自己的结合,加以修改企图能够连上服务器;最后苏苏经过不懈努力,夜以继日的尝试(夜以继日的崩溃),终于从查找到资料里学会了如何登陆注册交互。
(3)放弃
🎈3、是否解决
(1)解决
(2)解决
(3)暂时还没解决
🎈4、有何收获
(1)学会了一点点css,准备运用于自己的博客页面,很开心!还提高了审美,觉得自己很牛逼!
(2)学了一点js,ajax,知道了前后端交互的困难,知道了怎么使用接口帮助前端获取数据。
(3)懂得了:每天放弃一点点,生活才能更快乐 if else 很好用。
九、评价你的队友
🎈1、需要改进的地方
作为不能熬夜的人,实名赞赏严欣真的能熬,对于界面也是很早就求完美,是一个细致的人。
🎈2、需要改进的地方
我们俩分工太不明确(其实也是我们能力不足,没办法做到“我的能力就足够完成这个”,所以很多时候都是两个人互相帮忙一起去查资料然后分享)
十、学习进度条
第N周 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长 |
第3周 | 200 | 200 | 12 | 12 | 本周安装了Java运行环境,学习了Java的基本语法类,学会基本的axure rp9的操作 |
5 | 504 | 704 | 20 | 32 | 复习html,做了登陆,注册,开始界面,但还在修改 |
6 | 0 | 64 | 0 | 0 | 国庆放假、、、必然没学习 |
7 | 240 | 944 | 40 | 72 | 学习Ajax、json |