故事看这里: 背景故事 (链接)

作业

这个游戏可以变成一个持续发展的团队项目:

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 上台来比拼。

结对和团队项目建议 - 黄金点游戏相关推荐

  1. 结对项目:黄金点游戏(何珠赵艳)

    游戏规则:N个同学(N通常大于10),每个人写一个0-100之间的有理数,交给裁判,裁判算出所有数的平均值,然后乘以0.618,得到G值.提交的数字最靠近G值的同学得N分,离G值最远的同学得-2分,其 ...

  2. 团队项目建议 - 英语学习 App

    在这几年推广<构建之法>软件工程教学的过程中,我看到很多老师在讲软件工程的时候,虽然讲了很多年,但是手头没有任何项目,学生或者现想(得到一些大而无当,无法在一学期内完成一个可用版本的项目) ...

  3. [业余项目]黄金点游戏

    准备业余时间做一下这个: 创新的时机 – 黄金点游戏 结对和团队项目建议 - 黄金点游戏 ------------------------------------------------------- ...

  4. 实验十四-团队项目评审课程学习总结

    一.实验目的与要求 项目 内容 作业所属课程 https://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/nwnu-daizh/p ...

  5. 201671010456-张琼 实验十四 团队项目评审课程学习总结

    博文简要信息表 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu- ...

  6. 201671030111 李蓉 实验十四 团队项目评审课程学习总结

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程,反思总结课程学习内容. 任务一:结合本学期课程学习 ...

  7. 201671010417 金振兴 实验十四 团队项目评审课程学习总结

    项目 内容 软件工程 https://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/sunmiaokun/p/11095027.ht ...

  8. 实验十四 团队项目评审课程学习总结

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 (1)掌握软件项目评审会流程(2)反思总结课程学习内容 一.结合本学期课程 ...

  9. 201671030116 宋菲菲 实验十四 团队项目评审课程学习总结

    项目 内容 作业所属课程 所属课程 作业要求 作业要求 课程学习目标 (1)掌握软件项目评审会流程:(2)反思总结课程学习内容 任务一:团队项目审核已完成.项目验收过程意见表已上交. 任务二:课程学习 ...

最新文章

  1. 我们讲得比开复专业一点,是《奇葩大会》的李开复
  2. Tree 1.5 For Net 2.0
  3. MySQL-索引优化篇(3)_利用索引优化锁
  4. mysql clean up_svn之clean up操作
  5. UVa 208 - Firetruck (回溯)
  6. 防热服的设计数学建模_全国大学生数学建模和电子设计赛,这所驻青高校获奖山东最多...
  7. Sublime Text报错please wait a bit whilePyV8 binary is being downloaded
  8. 无监督学习 | KMeans与KMeans++原理
  9. 斯坦福用普通相机和激光笔实现“穿墙透视”,连你的证件都能看清
  10. 旅行 jzoj 1281
  11. 阶段3 1.Mybatis_08.动态SQL_02.mybatis中动态sql语句-where标签的使用
  12. Unity 查找资源引用
  13. 小米云服务器怎么更新文件,小米云服务使用手册
  14. IFR202型红外雨量传感器非接触式检测降雨量的传感器
  15. IT人,自我营销,你懂吗?
  16. Demo20211202
  17. 决策树之C4.5实现(离散属性与连续,属性并存)
  18. mysql格式化日期如果日期为空_为什么在使用MySQL数据库格式化日期时,此查询会提供一个空集?...
  19. alsa 驱动介绍及user层到hw层文件ioctl操作流程分析
  20. 零基础学软件测试,最先开始学什么?

热门文章

  1. SpringBoot学习笔记(16)----SpringBoot整合Swagger2
  2. CoreJava学习第五课 --- 进入第二阶段:面向对象编程思想
  3. 吴恩达【深度学习工程师】 04.卷积神经网络 第四周特殊应用(2)神经风格转换...
  4. Jmeter生成html格式测试报告
  5. Day Two(Beta)
  6. m3u:直播流的html接近下载
  7. leetcode--983.最低票价
  8. 怎么判断一个字符串的最长回文子串是否在头尾_最长回文字串/子序列问题(leetcode5,9,519)
  9. lte核心网由哪些设备组成_投影地面互动的实现由哪些设备组成?「振邦视界」...
  10. python函数递归法求一个数各位数之和_python – 设计一个使用digit_sum计算数字总和的递归函数...