结对编程之——黄金点游戏(单机版)
黄金点游戏
黄金点游戏是一个数字小游戏,其游戏规则是:
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+1>2的道理,明白了协作编程的重要性。
天毅是一个科技“发烧友”,乐于接受新鲜事物。一开始我们打算尝试采用c/s、b/s方式实现“黄金点游戏”,但是由于我们没有任何这方面的知识基础,加上时间有限,只好放弃,并最终决定改用单机方式实现这个项目。单机版的实现就较为简单了,天毅使用基于.Net Framework的WinForm实现该小游戏的界面制作,我则负责实现其算法部分。下面给出界面预览:
天毅对于游戏界面尽可能的做到了尽善尽美,坚持友好的用户体验,经过多次修改,才给大家展示出上面的最终界面,这一点是我应该向他学习的。
项目源代码:https://coding.net/u/dreamtofly/p/GoldenPointGame/git
队友博客地址:http://www.cnblogs.com/cty-fly/p/5967951.html