zoukankan      html  css  js  c++  java
  • 结对编程———黄金点游戏

    项目要求:

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

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

    结对成员:张艺鑫  李伟亮

    我的coding地址:https://coding.net/u/lwl123456

    张艺馨的coding地址:https://coding.net/u/zhangyixin

    张艺馨博客:http://www.cnblogs.com/zhangyixin/

    需求分析:

    这个项目要求的是从N个用户处获取数据,经过G点运算获取其差值,找出差值最大者和差值最小者对其进行分数赋予,在预设轮数后结束游戏并输出结果。思路清晰明了,大致分为以下几个步骤:

    1.从N个用户处获取数据

    2.获取G值,G值是此程序用于运算的关键数据,算法为所有用户提供数字的平均值与0.618的乘机。

    3.获取用户数据中距离G点最近的值和最远的值,即获取赢家数据保存下标和输家数据保存下标,先调用之前的获取G点方法得到G的值,再把所有数据分别与之相减取绝对值得到差值数组,最后把差值数组内的每一个值分别与G值比较,保存下差距最大和差距最小者的下标。

    4.数据重复处理,获取赢家成绩和输家成绩后,我们发现如果赢家不止一位,输家也不止一位,两个位置都有多个人占据,那么上面的代码就不能满足需求,所以要进行数据重复处理,获取完最大值和最小之后,反回去对原始距离数据进行对比,得出最大值和最小值的数据下标。

    5.排序,游戏运行完毕,用户的成绩各不相同,所以需要将其排序输出来使结果。

    程序截图:

    结对编程感受:

        刚刚接到这个分组,说实话我还是很慌的,因为我俩都不是那种大神,都只是会点c/c++的程序,像其他组的高大上的java什么的,我们并没有接触过,所以在我们结对编程中出现了很多很多的问题和分歧。但是经过磨合,我们还是克服了困难,成功的把程序写完。在这个过程中,让我认识到自己知识的欠缺,让我明白了结对编程两人合作的重要性。在这次结对作业中,我们也没有特别的进行分工,从刚开始的需求分析,算法设计,到最后的程序测试,我们都是在一起完成的,特别是编码过程中,一个人负责编程,一个人负责监督程序规范。

      总之,这次结对编程,给我带来了新的体验。

  • 相关阅读:
    一个让echarts中国地图包含省市轮廓的技巧
    安装MySql for Visual Studio的坑
    EasyUI文档学习心得
    《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想
    U3D自定义Inspector项未触发保存事件的解决方案
    ANT自动打包U3D安卓项目研究笔记
    HipChat上传文件报未知错误解决方案
    Unity3D读取模型文件自动生成AnimatorController简单实例
    较友好的Web文件下载用户体验实例
    Cocos2dx 3.x包含ext库报错解决
  • 原文地址:https://www.cnblogs.com/lwl123/p/5372281.html
Copyright © 2011-2022 走看看