這個遊戲能夠變成一個持續發展的團隊項目:html
1)在課堂上玩這個黃金點遊戲,用Excel 紀錄成績。過渡到作成簡單的單機版遊戲,鍛鍊基本的編程能力算法
2)兩人合做,作成簡單的 client/server 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 上臺來比拼。