首页 > 代码库 > 第三次作业----结对编程作业
第三次作业----结对编程作业
黄金点游戏是一个数字小游戏,其游戏规则是:
N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动。
这次软件工程的作业是以结对编程的形式编写“黄金点游戏”。结对编程是指两位程序员坐在同一工作台前开发软件与两位程序员各自独立工作相比,结对编程能写出质量更好更高的代码,达到事半功倍的效果。
现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下:
1、本作业属于结对编程项目,必须由二人共同完成,并分别将本次作业过程发到博客,同时将本次作业源代码提交到coding系统;
2、如果可能的话尽量以C/S或B/S方式实现,即利用服务器接收和处理所有玩家提交的数字,并将结果反馈给各玩家,玩家可以通过客户端提交数字;
3、如果采用单机方式实现的话,需要为用户提供便利的输入界面;
4、该游戏每次至少可以运行10轮以上,并能够保留各轮比赛结果。
二、需要提交的材料
1、项目源代码,以二人名义提交至coding系统中;
2、本次过程总结,每人独立完成,内容应至少包括如下部分:
(1) 首先,介绍自己的结对人员,并留下队员的博客链接(以便于老师对照看你们的作业吧),两人工作中的照片,要看到脸,并且要专注工作;
(2) 对方性格、工作态度评价;
(3) 俩人各自所做工作?对方编程习惯总结(是否遵照代码规范、是否关注算法效率、是否做了代码复审、界面设计是否关注美观实用等等);
(4) 本次编程过程的体会和总结,要有感情,切忌官话套话……
三、结对伙伴:蠢萌的小冰子(韩冰)
在本次的结对编程作业中,由于时间比较充足,所以互相体验了一次领航员和驾驶员。由于我们之间关系不错,又对互相的编程能力、风格有一定了解,所以这次在一起进行此次结对编程。
我作为驾驶员采用的编程语言为C/C++,而韩冰作为驾驶员则是用java编写的。
韩冰的博客链接:http://www.cnblogs.com/wulabing/p/5972892.html
我作为驾驶员的代码链接:https://coding.net/u/xujingwei/p/godpoint/git/blob/master/GodPoint
韩冰作为驾驶员的代码链接:https://coding.net/u/wulabing/p/GoldPoint/git/
四、结对编程感想
两个人的编程确实比一个人编程好的多,更容易写出一个更好,更完美的程序,这次的结对编程只能说是受益匪浅。我在作为驾驶员的时候,韩冰在我的旁边指出了我许多的小毛病,并且指出了算法上的漏洞,我的编程逻辑有时不是特别明确,他都会及时的指出。而在他作为驾驶员的时候,我也在旁边看着他写代码,他的编程逻辑确实要比我强的多,需要我指正的地方并不是很多。我在进行结对编程之前,还觉得两个人结对编程会比一个人慢,实际上却不是这样,其效率比一个人编程甚至还要快上不少。因为另外一个人还起到了督促的作用。而且结对编程时可以暴露出编程中的缺陷,可以进行及时的更正,可以很大程度的提高代码质量。通过这次结对编程感觉我们两个很合的来,可能以后还会在一起合作。
PS:我们在两个人的代码都编写完成之后一起去食堂吃饭,在吃饭时讨论这次用的算法,突然发现算法中有一个bug,然后通过讨论解决了这个bug,但又引出了其他的bug,就这样边吃边讨论解决了这个bug。回到寝室又看了看同学们的作业,发现好多人都忽略了这个问题,就是如果有两个人给出的数字相同怎么办?分数怎么解决?更多人数字相同怎么解决?两个数字离黄金点距离相同怎么解决?这些问题并不是说靠一个人没办法解决,只是大家很多组两个人都不一定能想到,那一个人又怎么能一定想得到呢?所以这次的结对编程让我收获颇丰,也更想去体验一下其他的敏捷编程方式会给我带来什么不同的体验。
五、结对变成过程(照片)
1.我作为驾驶员的照片
2.我作为领航员时的照片
第三次作业----结对编程作业