一、项目描述:黄金点游戏

黄金点游戏是一个数字小游戏,其游戏规则是:

      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) 本次编程过程的体会和总结,要有感情,切忌官话套话……

 

前言

  在老师的随机安排下,我有幸和我班一位美女结对,一同来开发一个黄金点小游戏程序,说实话,我还是很高兴的,毕竟俗话说,男女搭配,干活不累嘛。于是便有了一次奇妙的体验。

一、我的美女队友

  我的美女队友名叫孟相旭,是我班的学习委员,她学习成绩优异,表现良好。她的博客链接是:https://www.cnblogs.com/mxxl/,

她的coding链接是:https://coding.net/u/xubaobao/p/huangjindianyouxi/git/blob/master/黄金点游戏,有兴趣的同学可以去我队友那里学习。接下来展示一些我们在结对编程过程中的一些图片记录。

                                                                  

 

 

二、性格与工作态度

  孟相旭同学是一个比较害羞,内敛的女生,但是对于工作和学习十分的认真细致,在这一次的结队编程中,她十分主动,让我们在空闲时间都坐在一起研究思考,争取把这一次的任务高效完美的完成。她的工作态度十分积极,在代码复审和程序测试的过程中,都十分的仔细认真,事后和我进行讨论,我俩一点一点的再进行修改,将这个程序一步步的完善。与她合作,我十分的放松,没有一点紧张感,能够全身心的投入到项目开发中,让自己的工作效率也变得高了,所以这次的结队编程,我十分感谢孟相旭同学,正是她这样的性格与工作态度,让我们这一次的结队编程变得有趣,高效,我很期待与她再次合作。

三、开发过程

  这一次的开发由我来设计代码,孟相旭同学负责代码复审和程序测试,在开发之前,我们进行了为期两天的讨论与研究,最终确定了方案,采用C语言进行程序的编写,最终生成一个可以执行的.exe程序软件,可以方便使用。我们的程序主要分三块,分别是查看游戏规则、进入游戏和退出。接下来配合图片进行一下介绍。首先,我们把程序做成了可执行的.exe文件,并给它配了图标,美观大方,如图一。

图一 程序截图

  然后我们点开游戏程序,进入到如图二界面,输入任意字符进入游戏主界面,如图三。

         

                                                                                    图二 首页图                                                                                                                                                                               图三 游戏首页图

  然后可以选择输入“1”,进入查看游戏规则,如图四所示。按任意键回到主菜单后,选择“2”进入游戏界面,输入游戏人数和游戏回合数,如图五所示。

         

                                                                           图四 规则界面                                                                                                                                                                                  图五 游戏界面图

  根据提示各位玩家输入自己的数字如图六,要求0-100(不包括0和100),若超出范围则会让玩家重新输入。输入完成后提交给裁判,裁判会计算出G值并对每一位玩家进行打分,离G值最近的玩家得N分,最远的玩家扣2分,其与玩家不加分(默认玩家初始为0分),如图七所示

         

                                                                                图六 玩家输入界面图                                                                                                                                                                              图七 裁判打分界面图

  第一回合结束后,继续开始下一回合,同上一回合一样玩家继续输入有理数,如图八所示。提交给裁判后,裁判会算出当前G值并给出当前回合之后累计的分数,如图九所示。

     

                                                                                图八 第二回合游戏界面图                                                                                                                                                                           图九 第二回合裁判打分图

  当最后一回合时,裁判会提示按任意键查看总比分,然后就可以查看每一轮每位玩家的得分情况了,如图十、十一所示。最后按任意键就可以再一次回到游戏主菜单了。

  

                                                                               图十 总比分界面图                                                                                                                                                                         图十一 总比分界面图

  孟相旭同学认真的做了代码复审工作,将自己的问题和疑惑都提了出来,我根据她的问题和建议,也对代码和功能进行了多次的调整,两人的配合还是十分默契的。

 

四、总结

  通过这一次的结对编程,我受益匪浅,首先熟悉了这样的开发模式,两个人合作完成一个小项目,让我体会到了团队的优势与好处。结对的方式让开发变得更加高效,同时也让开发变得不再是一个人埋头苦思,而是变成了集思广益,想法上更加丰富,写起来也十分流畅。有了队友的代码复审,软件开发变得更加便捷,能够及时的发现错误并加以改正,同时还可以实时提出优化的代码和更好的建议,使开发的软件一点一点的趋于完善。让我提前体会到了项目开发不止是一个人的事,而是一个团队完成的任务,要学会合作,共同来完成项目的开发,这也是将来工作的实际开发模式,要学会适应和不同的编程人员共同工作,所以这一次也是一场奇妙的体验,受益颇丰。最后,感谢我的美女队友孟相旭同学。

队友合影留念

 

 

 

                                                                                                                                                                                                                                                                

                                                                                                                                                                                                                                          2016年10月16日星期日   

                                                                                                                                                                                                                                                                                                                       程浩