福州大学软工2020 | K 班 (福州大学)

  1. 班级首页
  2. 作业列表
  3. 详情

结对编程作业 [已截止]


Deadline: 2020-10-15 24:00pm

  • 需完成博客和编程作业
  • 提交作业标题:结对编程作业

 注:各小组评分时如发现:

  • 迟交:在Deadline后24小时内交在该同学原分数上扣30分,24-48小时内扣60 分,48-72小时内扣90分,扣到0分为止
  • 缺交:没交或在Deadline后交的评0分
  • 抄袭:评0分

一、题目描述

题目:图片华容道

【游戏规则】

  1. 我们会将原始字符图片(已上传QQ群)平均切割成九份小图,并随机抠掉一张图充当空格,此时图片为原始状态,然后我们将小图的顺序打乱并拼接回去,你需要做的事就是移动白色的图片将图片恢复到原始的状态(类似数字华容道
          
  2. 另外我们新增了一个规则,当你移动到一定步数的时候,我们会强制调换此时棋盘上的两个格子,由于此时棋盘不一定有解,所以我们给了你一次自由调换的机会,你可以调换任意两个图片的位置,注意这个自由调换只能在棋盘无解的情况下使用,且需紧接着强制调换的操作。

【接口说明】

接口测试工具推荐:PostMAN

我们用wsad字符表示空格图片的移动:如"ss"代表空格往下移动两格 

获取题目的接口(后续可能会有调整):参数stuid为你的学号

JSON请求 - 获取题目示例

GET http://47.102.118.1:8089/api/problem?stuid=031802230 

{
    "img":"iVBORw0KGgoAAAANSUhEUgAAA4QAAAOECAIAAAB2LGhsAAAgA...",
    "step":10,
    "swap":[3, 2],
    "uuid":"aba3daa3f93e4cc18e424e01e085422d"
}

img:经过base64编码的图片
step:第几步进行强制调换
swap:调换的图片编号
uuid:此题目的标识,提交答案时使用

提交答案的接口(后续可能会有调整):

JSON请求 - 提交答案示例

POST http://47.102.118.1:8089/api/answer


{
    "uuid":"7fc1df54827345c7aa3e54c3e13a2bd1",
    "answer":{
        "operations": "wsaaadasdadadaws",
        "swap": [1,2]
    }
}

uuid: 题目的标识
operations:你的操作序列
swap:你自由调换操作的图片编号

JSON响应 - 提交答案接口的返回信息

{
    "score": false,
    "time": 277.8527386188507
}

score: 是否通过测试
time:耗时(秒)

 上述接口仅供目前测试使用,后续可能会有调整,请注意群消息。


二、博客要求(40分)

每个人都需要到软工在线平台(后续会开放)完成结对,方便后续评分。

本次博客内容要求有三项,共占40分,分为原型设计、AI与原型设计实现、博客附加分

  • 请在文章开头给出自己和队友的博客链接、Github项目地址、具体分工(建议用表格列出来)

2.1 - 原型设计(20分)

[2.1.1]提供此次结对作业的设计说明,要求文字准确、样式清晰、图文并茂(多贴原型图 (12分)

[2.1.2]原型模型必须采用专用的原型模型设计工具实现:如Axure Rp、Balsamiq Mockup、Prototype Composer、GUI Design Studio、Adobe设计组件等等。在博文中说明你所采用的原型开发工具。(2分)

[2.1.3]描述结对的过程,提供非摆拍的两人在讨论、细化和使用专用原型模型工具时的结对照片。(2分)

[2.1.4]遇到的困难及解决方法:(4分)

  •    困难描述
  •    解决尝试
  •    是否解决
  •    有何收获

2.2 - AI与原型设计实现(20分)

[2.2.1]代码实现思路: (10分)

  • 网络接口的使用
  • 代码组织与内部实现设计(类图)
  • 说明算法的关键与关键实现部分流程图
  • 贴出你认为重要的/有价值的代码片段,并解释
  • 性能分析与改进
  • 描述你改进的思路
  • 展示性能分析图和程序中消耗最大的函数
  • 展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路 

[2.2.2]贴出Github的代码签入记录,合理记录commit信息。(2分)

[2.2.3]遇到的代码模块异常或结对困难及解决方法。(4分)

  • 问题描述
  • 解决尝试
  • 是否解决
  • 有何收获

[2.2.4]评价你的队友。(2分)

  • 值得学习的地方
  • 需要改进的地方

[2.2.5]提供此次结对作业的PSP和学习进度条(每周追加),示例如下(2分)

N

新增代码(行)

累计代码(行)

本周学习耗时(小时)

累计学习耗时(小时)

重要成长

1

500

500

5

5

熟悉x语言1、2、3特性

2

1000

1500

12

17

通过练习xxx,掌握了xxx用法

 

 

 

 

 

2.3 - 附加分(10分)

完成上述题目要求以外的其他特色和亮点,到时候会酌情给分。 

  • 文章逻辑清晰
  • 原型设计符合逻辑
  • 算法有创新点
  • 以及其他情况等

三、编程要求(60分)

编程要求分为AI、原型设计实现、Github使用相关三个部分,共60分。

3.1 - AI(40分)

[3.1.1]基本测试(10分)

  • 基本测试结合进入大比拼当中,和大比拼一起算分
  • 在大比拼中每完成10题给1分(不论排名)

[3.1.2]大比拼(30分)

  • 规则详见QQ群

3.2 - 原型设计实现(12分)

原型设计实现自由度高,常见功能比如有随机生成棋盘允许用户进行游玩

额外功能可以内嵌AI,当玩家不知道怎么继续玩的时候,以动画的方式给玩家演示你的AI是如何完成的(比如这个如果做得好就可以算进附加分里)

实现你的原型设计,完成度越高分越多,应包括但不限于以下功能:

  • 开始界面
  • 游戏界面
  • 基本的游戏功能
  • 往次得分
  • UI美观

3.3 - Github使用相关(8分)

需包含以下内容,根据完成度综合给分: 

  • README
    • 徽章(可以是使用的语言或者其他)
    • 运行环境
    • 编译方法
    • 使用方法
  • .gitignore
  • Commit信息(需要有意义的提交信息占比90%)
  • 使用分支管理提交代码,使用pull request
  • 开源协议
  • 持续集成
  • Issues模板

学号 成员名 提交作业标题 提交日期 分数
提交: 111 人,未提交: 20 人
未提交名单: surfly    jcandc    matoka    waif    那只猫的故事    cmygood    阿_源儿    错乱时间    PrincessYi    i柿子    ハレハレヤ    刘龙梅    筱du    ling零零    °不止    小啤酒真的不会喝酒啦    hell56l    qazcsr    cycycycycycy    ΠΠp