第二次结对编程作业

第二次结对编程作业

github地址:https://github.com/simplipy/031702408/releases/tag/十三水
结对同学的博客链接:https://www.cnblogs.com/buddlysue/p/11681373.html
本作业博客的链接:https://www.cnblogs.com/Jardinxin/p/11674165.html
ui界面视频(B站):https://www.bilibili.com/video/av73086090/
一、具体分工

||||||||||
|:--😐:--😐:--😐:--😐:--😐:--😐:--😐:--😐
||登陆注册|当前战况|排行榜|往期对战结果|详细历史战况|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周|新增代码(行)|累计代码(行)|本周学习耗时(小时)|累计学习耗时(小时)|重要成长|
|4|64|64|14|14|安装了eclipese;学习了java的一些基础,比如正则表达式;开始看慕课网上的java入门教程第一季 进度6%|
|5|250|314|20|34|复习html,装了Visual Stadio Code,做了排行榜界面,但是没有样式 很丑|
|6|0|64|0|0|国庆放假、、、必然没学习|
|7|500|814|48|82|学了css,把上上周的排行榜界面弄得好看了很多,做了历史记录界面,比之前熟练多了|

posted @ 2019-10-15 22:56  Jardinxin  阅读(319)  评论(2)    收藏  举报