首页 > 技术文章 > 软件工程-GoldPoint游戏

liufeifeifei 2017-10-25 14:33 原文

 需求:10个同学,每人写一个0~100之间的整数,交给裁判,裁判算出所有数字的平均值,然后乘以0.618,得到G值。提交的数字最靠近G(取绝对值)的同学得到2分,离G最远的同学得到-2分,其他同学得0分。

思路:

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

2.获取G值,设所有用户提供数字的平均值与0.618的积为G值。

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

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

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

 

github地址:

https://github.com/EchoPluslp/GoldGame.git

推荐阅读