黄金点游戏
一、项目描述:黄金点游戏
黄金点游戏是一个数字小游戏,其游戏规则是:
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轮以上,并能够保留各轮比赛结果。
二、程序介绍
因为我们都不会用C/S或B/S方式实现,所以我们最开始的想法是用C++写“小黑框”运行,因为我比较熟悉C++,所以这次的编程由我主编,他来完善,最后一起进行测试。
这里是C++程序的链接:https://coding.net/u/A_RACHEL/p/golden-point/git/blob/master/1
C++的运行结果如图所示:
输入玩家人数后每个玩家都有独立的输入界面,可以防止玩家看其他人的数字作弊。
运行后会输出本轮的黄金点和成绩,并询问是否进行下一轮游戏。
玩家的每轮游戏都会保存在文件中。
如果选择不继续游戏,会输出玩家的总成绩。
三、总结
我这次结对编程的队友是宋丰年,是我的同班同学。虽然是同学,但是我们之前的交流并不多,这次结对编程也让我对他有了新的了解。他是那种学习成绩特别好,基础也特别扎实的人。他的性格也非常好,态度很积极,遇到问题的时候也愿意认真的沟通。我原来还以为会因为不太熟悉而和他在沟通上出现一些问题,没想到实际上整个沟通的过程非常的顺利。我在写程序的时候有不会的地方也可以及时请教。
这是我们一起编程时的照片:
这是他的博客链接:http://www.cnblogs.com/Iriya/
这次结对编程让我有很多体会。首先,作为经常独立编程的我,能够非常真切的感受到两个人的确比一个人效率更高。在编程的过程中,可以发现对方的一些错误,及时提醒,自己也能从对方身上学到很多。其次,我体会到了与人合作时沟通的重要性。良好的沟通的确能起到事半功倍的效果。最后,在实际编程过程中发现自己还有很多不足的地方,以后还要继续学习。