結對和團隊項目建議 - 黃金點遊戲

故事看這裏: 背景故事 (連接)

做業

這個遊戲能夠變成一個持續發展的團隊項目:html

1)在課堂上玩這個黃金點遊戲,用Excel 紀錄成績。過渡到作成簡單的單機版遊戲,鍛鍊基本的編程能力算法

2)兩人合做,作成簡單的 client/server App,用戶從網頁/手機上輸入數字,並算出獲勝者。 技術討論的議題有: 編程

  • 前面寫的模塊有多少是能夠重用的? 爲什麼不能重用?
  • 研討 client/server 的API 應該怎麼設計,如何認證用戶?
  • 如何開發client App
  • 爲了保證遊戲按時完成,如何在服務器/客戶端作時鐘同步?
  • 若是得到第一名的多個用戶的數字相同,如何排定次序?(提示:能夠考慮提交時間,歷史成績)

3)如何設計測試用例, 保證server 的正確性, 效率, 壓力測試 (如何模擬上千個客戶端,從不一樣的端口,提交不一樣的數字?)服務器

4)原來咱們是讓用戶從客戶端輸入數字, 看到結果以後,再玩下一輪。用戶玩這個遊戲是有必定的策略的, 咱們如何能把這個策略變成程序,成爲人工智能呢? 可否利用 AI 算法提交數據?
  client 程序能訪問全部之前的歷史記錄, 它再推測下一個數字是多少, 而後提交。 測試

  這裏面也有不少問題要克服,例如,若是數字很小 0.00000000000000000001,  下溢了, 怎麼辦?
    應該提交的是 double, float, 仍是 string 類型?網站


5) 全班同窗每人寫一個程序, 玩一萬輪, 服務器要能快速處理。 
  挑戰:
  如何在服務器和客戶端都作到高效, 能多少秒鐘就比完一輪, 並把數據傳給全部客戶端? 客戶端是經過什麼接口來接受比賽數據,或者從某個公共來源去讀取數據?

6) 修改規則, 每一個用戶每次能夠提交兩個數字, 其餘規則同樣,再玩一萬輪。人工智能

  挑戰:這個時候,有程序會不會提交一個大的數字,來保證本身的另外一個數字比較接近 golden number? 你的AI 程序如何在這個新規則下佔得先機?

7)讓互聯網的用戶能夠經過網站註冊, 而後用某種 Domain Specified Language 寫這個AI 的規則, 而後他們也能夠經過網站玩這個遊戲。
  挑戰: 設計這種 DSL,並解釋執行。 設計

  例如, DSL 能夠支持下面的規則:server

  ① 我每一輪都提交上一輪全部數字的平均值 * 0.618 * 0.618htm

  ② 若是我上一輪的提交的數值小於當輪的 golden number,那個人下一個數字要是上個數字的兩倍

8) 擴展到全球,服務器能 24/7 不斷主持遊戲,並記錄成績。 同時,全球用戶的數據均可以開放下載,供人工或者是 AI 作研究和訓練。    挑戰:這個過程就能練不少技能和軟工設計的功夫, 同時可讓各個開發人員的AI 上臺來比拼。  

相關文章
相關標籤/搜索