结对编程作业
我的博客链接:https://www.cnblogs.com/beryl-z/p/13843667.html
黄嘉颖的博客链接:https://www.cnblogs.com/hjy0731/
Github项目地址:https://github.com/huangjiaying0731/cy_git/tree/master/031802111/华容道
具体分工:
姓名 | 分工 |
---|---|
黄嘉颖 | 原型设计、编写代码 |
张文婕 | 查找资料、编写博客 |
一、原型设计
1.设计说明:
(1)首界面上我们主要展示了游戏名称、开始游戏按钮、游戏介绍按钮、历史记录按钮、退出游戏按钮。主界面设计的比较简洁明了,方便玩家查看,并且快速、准确找到自己需要的功能。
(2)游戏界面我们主要设计了占据页面最大的部分:拼图区,以及上边界中的“返回主菜单”按钮,方便玩家在不想进行游戏的时间可以退回到主菜单中。还有游戏开始后记录时间、当前已走步数,这也是之后对玩家进行排名的重要依据。在下边界设置了“重新开始”按钮,对于不满意自己当前游戏进度的玩家,可以选择重新开始。
(3)游戏结束后,会跳转到该界面。主要展示了玩家本次游戏成绩,游戏成绩主要是两方面展示,一是本局游戏持续时间,二是本次游戏总步数。最后对玩家昵称进行记录,方便之后进行排行榜展示。在最后也增加了“返回主菜单”按键,以及“确定”按键,点击确定按键之后,玩家本局游戏信息可以存入库中,进行排行。
(4)该界面为游戏失败界面,展示了该玩家游戏失败前的游戏时间及步数,并显示“很遗憾您没有打破记录”,这里的记录是指最差游戏记录。页面最下方设置了“返回主菜单”以及“确定”按钮。以便玩家继续游戏或是返回主菜单。
(5)游戏介绍界面:主页面中点击“游戏介绍”就会跳转到该界面,对玩家进行简短的游戏介绍,方便玩家了解游戏规则。
(6)游戏排行榜界面:展示了游戏中各个玩家的游戏成绩,去所有成绩中排名前八的游戏成绩进行展现。主菜单中点击“历史记录”,就会调转到该界面。最下面设置了“返回主菜单”,点击后会返回到主界面。
2.原型开发工具:Axure RP9
3.结对照片
4.遇到的困难及解决方法:
·困难描述
(1)对于Axure RP9的使用不熟练,因为之前没有接触过,就需要自行搜索使用方法,所以前期比较耽误时间,也拖慢了进度。
(2)Axure RP9软件中的原型设计项目不会直接导出为html文件
·解决尝试
(1)在网上找教程,或者向有过使用经验的同学进行求教,自己多进行尝试与练习
(2)在网页中查找相关资料进行学习
·是否解决
(1)经过学习已解决,对于大部分功能了解,能够完成本次作业所需
(2)还在积极尝试,但是目前只能导出本地文件
·有何收获
(1)对Axure RP9的使用有了大概了解,并且能够对一些常见功能有了大致的了解,并且在本次作业中进行了实践
(2)暂无
二、AI与原型设计实现
1.代码实现思路:
·网络接口的使用
·代码组织与内部实现设计
首先,构建一个游戏的框架,左边包含几个按钮:结束游戏,重新开始,主菜单;通过鼠标点击按钮可以跳转到不同的界面。
在右边靠上的部分为拼图游戏区,均分为九个小方格。
在右下部分有原图区,是游戏的原图片,还有右下方的计步器
·说明算法的关键与关键实现部分流程图
(1)打乱拼图方块,并对每一块方块进行创建对象,最后进行拼图游戏界面的展示
(2)鼠标点击拼图移动原理
·重要代码片段
(1)鼠标点击移动拼图原理
(2)打乱拼图
(3)构建游戏框架
·性能分析与改进
耗时最大的还是mainloop函数,但是这也是整个框架运行的主要函数,要把这个改进我着实做不到
·性能分析图和程序中消耗最大的函数
2.Github代码签入记录
3.遇到的代码模块异常或结对困难及解决方法
问题:
(1)、最开始没有协商好从哪个地方开始准备
(2)、两个人的学习进度不一样,所以分开学习,结果并不如意
(3)、使用simpleguitk库的时候,一直找不到它的具体函数
解决方法:
(1)、查了很多资料,找到了要用到的主要算法
(2)、对比两个人的空闲时间,一起去益禾堂进行讨论
(3)、去官方的GitHub上找到了simpleguitk库的函数
4.评价队友
·值得学习的地方
对待遇到的困难,有钻研精神,能够纳新寻找方法进行解决。接受新知识速度快,并且完成工作很高效。
5.PSP和学习进度条
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 50 |
· Estimate | · 估计这个任务需要多少时间 | 10 | 30 |
Development | 开发 | 120 | 200 |
· Analysis | · 需求分析 (包括学习新技术) | 1000 | 1500 |
· Design Spec | · 生成设计文档 | 30 | 60 |
· Design Review | · 设计复审 | 40 | 50 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 60 | 60 |
· Design | · 具体设计 | 240 | 250 |
· Coding | · 具体编码 | 360 | 300 |
· Code Review | · 代码复审 | 60 | 60 |
· Test | · 测试(自我测试,修改代码,提交修改) | 120 | 200 |
Reporting | 报告 | 40 | 40 |
· Test Repor | · 测试报告 | 30 | 30 |
· Size Measurement | · 计算工作量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 60 | 90 |
· 合计 | 2220 | 2930 |
学习进度条
第N周 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长 |
---|---|---|---|---|---|
第1周 | 100 | 100 | 9 | 9 | 了解需要的算法,进行原型设计构思 |
第2周 | 200 | 300 | 15 | 24 | 熟悉SimpleGUITk算法 |
第3周 | 300 | 600 | 20 | 44 | 用Python写了游戏并进行修改 |