结对编程 第二阶段

一、实验目标
  1)体验敏捷开发中的两人合作。
  2)进一步提高个人编程技巧与实践。
二 、实验内容
  1)根据以下问题描述,练习结对编程(pair programming)实践;
  2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
  3)要求在结对编程工作期间,两人的角色至少切换 4 次;
  4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
三、组队情况
队名:第十六组
选择课题:生命游戏
组员博客地址:李真真(https://www.cnblogs.com/real2/)
周韧欢(https://home.cnblogs.com/u/vkook-1230/)
仓库地址( https://github.com/lizhenzhen0114/game)

四、实验过程
1、代码规范
(1)命名规范基本原则:变量名=属性+类型 +对象,每一个对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。
(2)变量的定义尽可能放在最开始处,功能相近的函数集中放在一起。
(3)声明变量时对齐变量名,并在定义时写上注释。函数间要使用空行分开,每个函数定义时写注释。
(4)某一段代码写上具体的注释,标注具体完成什么功能。
(5)函数或过程的开始、结构的定义及循环、判断等语句的代码都要采用缩进风格,case语句下的情况处理语句也要遵从缩进风格。
(6)程序块的分界符“{”与“}”应各占一行。
参考资料链接:http://www.360doc.com/showweb/0/0/903393905.aspx

2、程序的总体设计(附图说明模块之间的关系)
(1)系统流程图
结对编程 第二阶段_第1张图片

(2)功能函数
void Initialize();//初始化一个函数
void RunGame();//进行游戏
int Count(int i,int j);//计算生命周围的生命数量
void Data();//调用已存的游戏数据
①初始化函数:Initialize(),用于调用游戏数据。

②运行游戏函数:RunGame(),休眠2秒;
规则:如果一个生命周围的生命少于2个,它在回合结束后死亡。
如果一个生命周围的生命超过3个,它在回合结束后死亡。
如果一个生命周围有2或3个生命,它在回合结束时保持原样。
如果一个死格周围有3个生命,它在回合结束时获得生命。
结对编程 第二阶段_第2张图片

③计算生命周围的生命数量:int Count(int i,int j)
结对编程 第二阶段_第3张图片

④切换游戏内容函数:void Data(),内含十字排、滑翔机以及高斯帕滑翔机。
结对编程 第二阶段_第4张图片

3、程序结对编程过程(附图)及功能实现情况(附代码和图)
(1)
结对编程 第二阶段_第5张图片

(2)结伴编程过程
我们通过qq远程控制和微信进行问题交流。
初始编程,讨论代码以及交互:
结对编程 第二阶段_第6张图片

添加功能:
结对编程 第二阶段_第7张图片

(3)结伴编程所遇到的问题
由于是李真真建立的仓库,开始我从自己的本地仓库(可以上传我自己所建的远程仓库),想要上传代码文件到远程的游戏仓库,无法上传成功;后来是她在她的本地仓库上传。
运行命令:git push origin master
结对编程 第二阶段_第8张图片

结对编程 第二阶段_第9张图片

修改代码,添加游戏数据时,由于我们俩还不是很熟悉GitHub,所以我在修改完代码,提出文件变更,拉取新的请求,需要对方同意合并。(如果是自己所建仓库,不需要)
结对编程 第二阶段_第10张图片

结对编程 第二阶段_第11张图片

结对编程 第二阶段_第12张图片
结对编程 第二阶段_第13张图片

4.游戏运行截图:
利用GIF工具,展现生命游戏的生动性和趣味性。
结对编程 第二阶段_第14张图片

错误截图:
结对编程 第二阶段_第15张图片

5、项目github地址(附图)
游戏地址:https://github.com/lizhenzhen0114/game
结对编程 第二阶段_第16张图片

6、实验总结
这一次实验收获颇丰,熟悉了GitHub的各种操作。结对编程,使我和我的小伙伴在不同的地方可以一起写代码,当某个人写代码有错误时,另一个人会发现错误,立即提出,以防的最后程序执行后产生错误,从头找起。当遇到一个难点时,两人可以马上进行讨论,在网上查询答案,寻求突破点,比一个人盲目查找,效率大大提高。希望以后可以继续合作。

你可能感兴趣的:(结对编程 第二阶段)