我的结对编程是和另外一个班级(1301班)的王清天同学一起做的。我们俩以前只见过几面说过几句话,并不算太熟,只能算认识。所以这次我俩合力完成的黄金点游戏项目还是有点瑕疵,日后会努力改进。
具体要求如下:
N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动。
现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下:
1、本作业属于结对编程项目,必须由二人共同完成,并分别将本次作业过程发到博客,同时将本次作业源代码提交到codeing系统;
2、如果可能的话尽量以C/S或B/S方式实现,即利用服务器接收和处理所有玩家提交的数字,并将结果反馈给各玩家,玩家可以通过客户端提交的数字;
3、如果采用单机方式实现的话,需要为用户提供便利的输入界面;
4、该游戏每次至少可以运行10轮以上,并能够保留各轮比赛结果。
一.分析过程:
本次项目我俩是用C语言设计的,游戏的主要过程上述已经很清楚了。我对此程序的设计分析有如下几点:
1.本程序的设计用了冒泡排序的思想。
2.设计三个一维数组,第一个用来存储n个同学所写的数字,第二个用来存储这些同学随机写入的数据经冒泡排序后的新序列,第三个用来存储选取这些数字的每一个同学所得的分数。
3.这次程序的用到最多的是for循环结构,利用for循环在用户端实现该数组元素的输入,尤其是冒泡排序法。
4.游戏运用了冒泡排序法是因为通过冒泡排序可以将第一个数组当中的无规则的元素按从小到大的顺序依次输入到第二个的数组当中,通过第二个数组元素我们可以分析得到,第二个数组当中的第一个元素一定是与G值相差最大的那一个,它可以得到-2,而最后一个一定是最小的,它可以得到N分,其他的则是0分,然后我们可以依次把这些分数输入到第三个数组当中去,并依次输出。
二.对于我的搭档的看法
我的搭档做得非常认真,他本来要考研,复习非常忙,但是因为结对编程项目,他拿出几天的时间和我一起去编程,人特别好。他C语言比我好一些,所以,他是我们的主要程序员。编写程序过程中,我俩遇到好多问题,查资料去完成。但是最后程序还是有瑕疵。日后加以改进。在我们两个人一起工作的过程中,我学到了很多的东西,我们彼此促进,共同交流,俩人之间的陌生在我俩之间完全看不到,日后希望还可以一起做项目,共同努力。