这个游戏能够变成一个持续发展的团队项目: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 上台来比拼。