结队编程(第二阶段)

一、实验目标
  1)体验敏捷开发中的两人合作。
  2)进一步提高个人编程技巧与实践。
  
二 、实验内容 
  1)根据以下问题描述,练习结对编程(pair programming)实践; 
   2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
  3)要求在结对编程工作期间,两人的角色至少切换 4 次; 
  4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。博客内容应该包括:
  1、代码规范
  2、程序的总体设计(附图说明模块之间的关系)
  3、程序结对编程过程(附图)及功能实现情况(附代码和图)
  4、项目github地址(附图)
  5、实验总结
 
三、实验具体操作
我们商量,我先完成代码地图部分设计和生命游戏规则代码的实现,丁磊负责编写代码的主函数部分。

1.总体设计
结队编程(第二阶段)_第1张图片

商量决定我来设计地图,我设计地图为48*48的矩阵。二维数组存储黑色方块,进行输出。当没有细胞时屏幕为黑色,白色方块代表细胞。根据生命游戏规则,来设计。
举例:a[i][j][g],i和j为该数组元素所在行和列,g则表示它是第几代(这里我设置g不超过999代)。

当a[i][j][g]为白色时,我们来判断a[i][j-1][g] a[i][j+1][g ] a[i-1][j][g ] a[i+1][j][g],a[i-1][j-1][g ] a[i-1][j+1][g ] a[i+1][j-1][g ] a[i*1][j+1][g ]。如果八个有三个为白色,则该细胞死亡。
按照此规则进行遍历数组。得到第一代的细胞输出。接着循环g次。
结队编程(第二阶段)_第2张图片

2.实验过程
我将主程序设计好,上传到仓库中
结队编程(第二阶段)_第3张图片

告知丁磊,丁磊fork我的代码,到本地,然后他开始设计主函数代码部分。

一个小时后,我接到消息,他已经设计好代码并pullrequest了

我登录查看,没有冲突,就Merge请求。
结队编程(第二阶段)_第4张图片

结队编程(第二阶段)_第5张图片

comment同意合并

程序设计完成,我对程序进行检验。发现程序有错,我将这个合并删除,退回到上个版本。要求丁磊从新修改上传。
最终程序没问题了,丁磊下载然后运行。
结队编程(第二阶段)_第6张图片

3.程序截图
结队编程(第二阶段)_第7张图片

结队编程(第二阶段)_第8张图片
结队编程(第二阶段)_第9张图片

3.项目地址仓库

https://github.com/runman33/my-travel-plans/new/master

实验小结:本次实验我们进行了深切的交流,我使用的手机和丁磊的电脑操作上有一些冲突,但是我们都尽力克服。我用手机端做的主仓库,所以代码都没办法运行,我写好交给丁磊运行,然后反馈结果再修改。
对于github操作,我们交互几次,修改文件,上传并且fork,我对pullrequest进行同意合并。经过这次做实验,我对github操作了解更深刻,虽然还是看不懂上面的英文,但是操作还是可以的(●✿∀✿●)。期待继续合作。

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