结对和团队项目建议 - 黄金点游戏
故事看這里:?背景故事 (鏈接)
作業
這個游戲可以變成一個持續發展的團隊項目:
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 可以支持下面的規則:
① 我每一輪都提交上一輪所有數字的平均值 * 0.618 * 0.618
② 如果我上一輪的提交的數值小于當輪的 golden number,那我的下一個數字要是上個數字的兩倍
8) 擴展到全球,服務器能 24/7 不斷主持游戲,并記錄成績。 同時,全球用戶的數據都可以開放下載,供人工或者是 AI 做研究和訓練。??
挑戰:這個過程就能練很多技能和軟工設計的功夫, 同時可以讓各個開發人員的AI 上臺來比拼。??
總結
以上是生活随笔為你收集整理的结对和团队项目建议 - 黄金点游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 构建之法 第三版 第3章 部分草稿 (剪
- 下一篇: 现代软件工程 作业 4 个人作业