首页 > 代码库 > 第三次作业-结对编程

第三次作业-结对编程

一:前言

 

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

      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轮以上,并能够保留各轮比赛结果。

二:分工

这次是采用两人结对编程形式来完成作业,我的结对编程队友是马啸天,我是驾驶员,他是驾驶员;我们先是讨论了一下黄金点游戏的游戏规则,并按照游戏规则玩了一下游戏,发现G点确实有往下移动的的趋势。由于我是驾驶员,我决定用c++中的map来写,之前一直听别人说map,一直想学来的,这次作业正好可以用map来实现。于是我们就打算学着map来实现。

三:代码编写

  1、首先我们先实现的是只进行一次游戏的代码编写。一开始我定义的map数据类型是map<string,int>,在领航员的指出下,才发现这个错误。

  2、for 循环 来接受数据,G值的求解,按照要求。求与G值的距离,用一个for循环,这里用到了fabs函数,头文件为math.h。用两个标志low,high来存储差值最小和最大的位置。

  3、接下来我们想实现进行多次游戏,于是我就加上游戏次数你,用while循环,可是结果不对。后来我们进行讨论,队友发现每次上一轮的G和求和的参数等没有清零。于是我在队友的帮助下成功修改成功了。这里用的了map里的clear()函数。

四 总结

 

第三次作业-结对编程