zoukankan      html  css  js  c++  java
  • 第二次结对编程作业

    UI视频地址:https://reccloud.cn/u/1fhwty4

    1.作业地址

    结对同学的博客链接:https://www.cnblogs.com/zhuozhuohaha/p/11681515.html
    本作业博客链接:https://www.cnblogs.com/linxinlx/p/11681184.html
    fork的同名仓库的GitHub项目:https://github.com/zhuozhuohaha/shisanshui

    2.具体分工

    薛紫微:前段UI界面
    林鑫:后端AI

    3.PSP表格

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

    4.解题思路描述与设计实现说明

    (1)网络接口的使用:

    本次使用的是csharp进行编程,所以认真地看了c#如何获取http请求,写了一个调用API的类,里面写了get和post函数进行请求,通过这种方式调用注册登陆出牌等API接口,从而实现了网络接口的使用。

    (2)代码组织与内部实现设计(类图):

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

    算法的关键是将字符串先转换成一个由花色和牌面数字组成的三位数,然后对三位数进行处理,把能找到的最大牌型先找出来,然后接着在剩下的牌中再找出最大的牌型,以此类推,直到三墩水都有牌。

    5.关键代码解释

    这是我认为比较有价值的一部分,主要是困扰了我一段时间,所以就贴出来了,这部分是调用API以及json字符串和json对象的转换,自己看材料的时候还不是很清楚,还问了大佬才解决的,所以觉得挺有价值的。

    6.性能分析与改进

    (1)改进思路:

    因为每次都是取出最大的牌型,这就会导致一个问题,比如底墩是葫芦,中墩是两个对,此时因为每次取最大,所以会导致葫芦所跟的对是三个对中最大的,这样中墩就会变得比较小,所以需要进行改进,改进思路就是碰到葫芦时进行判定从而选取最小的对,从而是算法得到了进一步的优化。但是我发现还有连对这个规则,所以又得进一步实现改进,特判这个最小对是否与其他对存在连对关系,如果是则取较大的对,再次重复上述过程,排除连对情况后,得到葫芦所需的对子。

    (2)性能分析图和程序中消耗最大的函数:

    7.单元测试


    测试的是CardmodelTes1函数,构造测试的思路是检测葫芦的对是否会影响
    中墩多个对存在的情况,测试出不会影响,说明算法有所改进。

    8.Github的代码签入记录

    9.遇到的问题及解决方法

    (1)问题描述:

    不会用c#进行网络请求;
    不知道怎么画类图;

    (2)做过的尝试:

    在CSDN上搜索如何用C#进行网络请求以及询问大佬;
    在CSDN上搜索如何画类图;

    (3)是否解决:

    已解决

    (4)有何收获:

    学习了一门新的语言csharp;
    再次深入感受到面向对象方法;
    学会如何用Csharp获取网络请求和画类图;
    认识到搜索能力的重要性;

    10.评价队友

    (1)值得学习的地方:

    对于不懂的知识会想尽办法弄懂,特别认真和执着;
    不会因为所需要做的部分太难而导致情绪不稳定;
    在我感觉烦躁的时候安慰我;

    (2)需要改进的地方:

    要做的部分细节太多导致陪我的时间变短

    11.学习进度条:

    第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
    1 0 0 10 10 学会了python、墨刀、十三水纸牌
    2 560 560 13.5 23.5 学会了csharp,并能简单使用
    3 1200 1760 14 37.5 学会了csharp获取网络请求以及如何画类图
  • 相关阅读:
    Java:IO流之字符流缓冲区详解
    Java:IO流之字符流Reader、Writer详解
    Java:IO流之字节流InputStream、OutputStream详解
    iOS:Git分布式版本控制器系统
    Java:日历类、日期类、数学类、运行时类、随机类、系统类
    Java:泛型
    Java:静态导入
    Java:集合for高级循环遍历
    一个相当好的状态机(DFA, 确定有限状态机)的编码实现,相当简洁漂亮
    android 开发必用的开源库
  • 原文地址:https://www.cnblogs.com/linxinlx/p/11681184.html
Copyright © 2011-2022 走看看