一、实验目标
1)体验敏捷开发中的两人合作。
2)进一步提高个人编程技巧与实践。
二 、实验内容
1)根据以下问题描述,练习结对编程(pair programming)实践;
2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
3)要求在结对编程工作期间,两人的角色至少切换 4 次;
4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
三、实验过程
1)查阅相关资料加深对敏捷开发和结对编程的理解:
敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的新型软件开发方法,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。
生命游戏
生命游戏是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。
游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个方格中都可放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。图中,用黑色的方格表示该细胞为“死”, 其它颜色表示该细胞为“生” 。
游戏开始时, 每个细胞可以随机地(或给定地)被设定为“生”或“死”之一的某个状态, 然后,再根据如下生存定律计算下一代每个细胞的状态:
-
每个细胞的状态由该细胞及周围 8 个细胞上一次的状态所决定;
-
如果一个细胞周围有 3 个细胞为生,则该细胞为生,即该细胞若原先为死则转为生,若原先为生则保持不变;
-
如果一个细胞周围有 2 个细胞为生,则该细胞的生死状态保持不变;
-
在其它情况下,该细胞为死,即该细胞若原先为生则转为死,若原先为死则保持不变。
4)开发环境
我们选用的是PYTHON语言,编译环境选择了pycham
理由:有专门的图像库,且python语言适合做数据运算。
5)课题理解
<1>该游戏可以用一个棋盘来表示,以白代表生,黑代表死。
<2>我们首先要给游戏赋值,这个值包括棋盘的大小,棋盘上各色棋子的初态。
<3>判断一个棋子下一回合是生是死要先了解目前棋子的状态,再对的周围棋子的状态进行遍历
<4>边缘细胞属于其他情况下,默认其不存在的细胞为死,且状态不发生改变。
5)如何结对与切换角色
a.我们用GitHub托管代码,利用QQ结对编程。
b.一个人写代码另一个人监督,然后将写好的代码放置在GitHub上托管。
c.下一次两人互换角色,修改完善代码。
d.多次进行角色互换,直至成功实现代码功能