实验二 结对编程第一阶段

1)查阅相关资料加深对敏捷开发和结对编程的理解

   敏捷软件开发,又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的新型软件开发方法,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。     

    结对编程是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。他不仅意味着编程活动,也包括分析、设计、测试等全程活动。

    在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。其基础是会话和讨论,由于疫情原因,我们采取了github托管项目,利用网络进行面对面的编程。


2)组队情况,各队博客地址,github仓库地址,所选择的课题

队伍名称 队员 博客地址 GitHub仓库地址 选择课题

蜗牛蜗牛你慢慢爬

何梦雅 https://www.cnblogs.com/blog-address/ https://github.com/super-sweet8/- 生命游戏
沈磊 https://www.cnblogs.com/cnsl/

问题描述

    生命游戏是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。

    游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个方格中都可放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。图中,用黑色的方格表示该细胞为“死”, 其它颜色表示该细胞为“生” 。

    游戏开始时, 每个细胞可以随机地(或给定地)被设定为“生”或“死”之一的某个状态, 然后,再根据如下生存定律计算下一代每个细胞的状态:

  • 每个细胞的状态由该细胞及周围 8 个细胞上一次的状态所决定;

  • 如果一个细胞周围有 3 个细胞为生,则该细胞为生,即该细胞若原先为死则转为生,若原先为生则保持不变;

  • 如果一个细胞周围有 2 个细胞为生,则该细胞的生死状态保持不变;

  • 在其它情况下,该细胞为死,即该细胞若原先为生则转为死,若原先为死则保持不变。


3)针对课题查阅的资料,对课题的理解

    假设世界是一个N*N的方格矩阵,每一个格子都住着一个细胞,每个细胞都有生和死两种状态,若该细胞生就显示蓝色,死则显示白色。每一个格子旁边都有邻居格子存在,如果我们把3*3的9个格子构成的正方形看成一个基本单位的话,那么这个正方形中心的格子的邻居就是它旁边的8个格子。每个格子内细胞的生死遵循下面的原则:

1.如果一个细胞周围有3个细胞为生(一个细胞周围共有8个细胞),则该细胞为生(即该细胞若原先为死,则转为生,若原先为生,则保持不变) 。

2.如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变;

3.在其它情况下,该细胞为死(即该细胞若原先为生,则转为死,若原先为死,则保持不变)

    设定图像中每个像素的初始状态后依据上述的游戏规则演绎生命的变化,由于初始状态和迭代次数不同,将会得到令人叹服的优美图案。细胞自动机有一个通用的形式化的模型,每个格子(或细胞)的状态可以在一个有限的状态集合S中取值,格子的邻居范围是一个半径r,也就是以这个格子为中心,在距离它r远的所有格子构成了这个格子的邻居集合,还要有一套演化规则,可以看成是一个与该格子当前状态以及邻居状态相关的一个函数,可以写成:

f:S*S^((2r)^N-1)->S

这就是细胞自动机的一般数学模型。

4)二个人商量后,采用开发平台和技术工具

暂定为采用QQ远程协作工具实现桌面分享,采用github远程仓库托管代码。使用eclipse,java语言编写代码。


5)其他,如二人讨论的记录

目前讨论结果为选定了题目与工具,确定了队名。以后会接着更新。

猜你喜欢

转载自www.cnblogs.com/blog-address/p/12537079.html