我的結對程式設計是和另外一個班級(1301班)的王清天同學一起做的。我們倆以前隻見過幾面說過幾句話,并不算太熟,隻能算認識。是以這次我倆合力完成的黃金點遊戲項目還是有點瑕疵,日後會努力改進。
具體要求如下:
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輪以上,并能夠保留各輪比賽結果。
一.分析過程:
本次項目我倆是用C語言設計的,遊戲的主要過程上述已經很清楚了。我對此程式的設計分析有如下幾點:
1.本程式的設計用了冒泡排序的思想。
2.設計三個一維數組,第一個用來存儲n個同學所寫的數字,第二個用來存儲這些同學随機寫入的資料經冒泡排序後的新序列,第三個用來存儲選取這些數字的每一個同學所得的分數。
3.這次程式的用到最多的是for循環結構,利用for循環在使用者端實作該數組元素的輸入,尤其是冒泡排序法。
4.遊戲運用了冒泡排序法是因為通過冒泡排序可以将第一個數組當中的無規則的元素按從小到大的順序依次輸入到第二個的數組當中,通過第二個數組元素我們可以分析得到,第二個數組當中的第一個元素一定是與G值相差最大的那一個,它可以得到-2,而最後一個一定是最小的,它可以得到N分,其他的則是0分,然後我們可以依次把這些分數輸入到第三個數組當中去,并依次輸出。
二.對于我的搭檔的看法
我的搭檔做得非常認真,他本來要考研,複習非常忙,但是因為結對程式設計項目,他拿出幾天的時間和我一起去程式設計,人特别好。他C語言比我好一些,是以,他是我們的主要程式員。編寫程式過程中,我倆遇到好多問題,查資料去完成。但是最後程式還是有瑕疵。日後加以改進。在我們兩個人一起工作的過程中,我學到了很多的東西,我們彼此促進,共同交流,倆人之間的陌生在我倆之間完全看不到,日後希望還可以一起做項目,共同努力。