zoukankan      html  css  js  c++  java
  • 实验二、结对编程

    一、实验目标:
    1)体验敏捷开发中的两人合作。
    2)进一步提高个人编程技巧与实践。
    二 、实验内容:
    1)根据以下问题描述,练习结对编程(pair programming)实践;
    2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
    3)要求在结对编程工作期间,两人的角色至少切换 4 次;
    4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
    三、问题描述
    生命游戏
    生命游戏是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。
    游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个方格中都可放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。图中,用黑色的方格表示该细胞为“死”, 其它颜色表示该细胞为“生” 。
    游戏开始时, 每个细胞可以随机地(或给定地)被设定为“生”或“死”之一的某个状态, 然后,再根据如下生存定律计算下一代每个细胞的状态:每个细胞的状态由该细胞及周围 8 个细胞上一次的状态所决定;如果一个细胞周围有 3 个细胞为生,则该细胞为生,即该细胞若原先为死则转为生,若原先为生则保持不变;如果一个细胞周围有 2 个细胞为生,则该细胞的生死状态保持不变;在其它情况下,该细胞为死,即该细胞若原先为生则转为死,若原先为死则保持不变。

    1).查阅相关资料加深对敏捷开发和结对编程的理解
    敏捷开发:
    敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。
    在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
    简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。
    来源链接:https://blog.csdn.net/csdn15556927540/article/details/90712308
    结对编程:
    结对编程(Pair Programming)同样也是一种敏捷开发方法论,顾名思义它是指两名程序员在一个计算机上共同编程,这种特殊编程方式就像拉力赛一样,一个人输入代码(驾驶员),另一个人审查他的代码(领航员),当然他们的角色也会相互转换。这种方式相当特殊,当然他们在合作的过程中相互碰撞相互学习,两个人的成长和对软件的完成度都会非常的快和高。
    这种工作方式现在比较少见,当然在特殊时期它或许是一个比较好的工作方式,一些研究发现程序员结对工作与单独工作相比,会写出更短的程序,更好的设计,以及更少的缺陷。另外,开发过程变得更为有趣,任何人的交流变得很多,大家关系更为融洽。
    来源链接:https://www.jianshu.com/p/e2dde263af05
    2).组队情况:
    第十六组
    组员及博客地址:李真真(https://www.cnblogs.com/real2/)
    周韧欢(https://home.cnblogs.com/u/vkook-1230/)
    仓库地址:https://github.com/lizhenzhen0114/game
    所选课题:生命游戏

    3).针对课题查阅的资料,对课题的理解
    生命游戏的概述:
    生命游戏是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。
    游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个方格中都可放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。图中,用黑色的方格表示该细胞为“死”, 其它颜色表示该细胞为“生” 。
    游戏开始时, 每个细胞可以随机地(或给定地)被设定为“生”或“死”之一的某个状态, 然后,再根据如下生存定律计算下一代每个细胞的状态:
    每个细胞的状态由该细胞及周围 8 个细胞上一次的状态所决定;
    如果一个细胞周围有 3 个细胞为生,则该细胞为生,即该细胞若原先为死则转为生,若原先为生则保持不变;
    如果一个细胞周围有 2 个细胞为生,则该细胞的生死状态保持不变;
    在其它情况下,该细胞为死,即该细胞若原先为生则转为死,若原先为死则保持不变。
    规则看起来很简单,但却能演绎出无穷无尽的内容。
    规则看起来很简单,但却能演绎出无穷无尽的内容。

    滑翔者:每4个回合"它"会向右下角走一格。虽然细胞早就是不同的细胞了,但它能保持原本的形态。
    轻量级飞船:它的周期是4,每2个回合会向右边走一格。
    脉冲星:它的周期为3,看起来像一颗周期爆发的星星。
    等更复杂的图案。

    4).采用开发平台和技术工具
    经过讨论后,我们选择Python,若后续效果不好将考虑java或C语言等进行编写。

    5).其他
    我们小组主要采用qq视频通话来进行实验内容的讨论以及后续任务的分布等。

  • 相关阅读:
    浏览器渲染原理
    React Router
    链式 add 函数
    函数防抖和函数节流
    242. 有效的字母异位词
    faker 生成模拟数据
    A 第五课 二叉树与图
    使用递归解决问题
    A 第四课 递归_回溯_分治
    A 第三课 贪心算法
  • 原文地址:https://www.cnblogs.com/real2/p/12454679.html
Copyright © 2011-2022 走看看