1. 程式人生 > >結對項目---黃金點

結對項目---黃金點

數據 裁判 均值 net font 現象 調用 http 有意思

代碼摘自:https://coding.net/u/lwl123456

一、介紹:

黃金點遊戲是一個數字小遊戲,其遊戲規則是:

N個同學(N通常大於10),每人寫一個0~100之間的有理數 (不包括0或100),交給裁判,裁判算出所有數字的平均值,然後乘以0.618(所謂黃金分割常數),得到G值。

提交的數字最靠近G(取絕對值)的同學得到N分,離G最遠的同學得到-2分,其他同學得0分。玩了幾天以後,大家發現了一些很有意思的現象,比如黃金點在逐漸地往下移動。

二、需求分析:

這個項目要求的是從N個用戶處獲取數據,經過G點運算獲取其差值,找出差值最大者和差值最小者對其進行分數賦予,在預設輪數後結束遊戲並輸出結果。思路清晰明了,大致分為以下幾個步驟:

1.從N個用戶處獲取數據

2.獲取G值,G值是此程序用於運算的關鍵數據,算法為所有用戶提供數字的平均值與0.618的乘機。

3.獲取用戶數據中距離G點最近的值和最遠的值,即獲取贏家數據保存下標和輸家數據保存下標,先調用之前的獲取G點方法得到G的值,再把所有數據分別與之相減取絕對值得到差值數組,最後把差值數組內的每一個值分別與G值比較,保存下差距最大和差距最小者的下標。

4.數據重復處理,獲取贏家成績和輸家成績後,我們發現如果贏家不止一位,輸家也不止一位,兩個位置都有多個人占據,那麽上面的代碼就不能滿足需求,所以要進行數據重復處理,獲取完最大值和最小之後,反回去對原始距離數據進行對比,得出最大值和最小值的數據下標。

5.排序,遊戲運行完畢,用戶的成績各不相同,所以需要將其排序輸出來使結果。

三、個人感受

結對遊戲,在制作過程中,讓我感到,一個團隊去制作一款遊戲,比一個非常牛逼的人去制作一款遊戲的有趣度和工作效率將高很多。

代碼已上傳:https://github.com/satoshi-hoxi

已上傳至:https://github.com/satoshi-hoxi

結對項目---黃金點