本小游戏场景来自邹欣老师的《移山之道》一书:

“阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏:N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动。如果你和其他20 个聪明人玩这个游戏, 你会选择什么数字呢?”

  结对编程即两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。

  本次结对编程作业我的搭档是王心恬同学。心恬是校ACM队大神之一,工作态度认真,对算法效率方面精益求精,所以算法与数据结构方面,主要就交给她设计了。而我更注重软件的用户体验,也喜欢评测各种软硬件产品,所以界面和交互由我来实现。

  由于本次结对编程作业时间较紧,根据我们现有的知识,无法在7天之内学习并完成C/S或B/S模式软件的制作,所以只好选择了做单机版。WinForm应用程序没有复杂的界面设计语言,上手快,可以快速的实现一些小项目,所以我们选择使用基于.Net Framework的WinForm实现该小游戏的界面制作。开发平台:VS2015

虽然此项目算法方面并没有什么难点,但通过和心恬同学的讨论,发现了一些小的细节需要注意。首先,最终的冠军可能不止一个,最高分出现两个或两个以上的概率其实不小。其次,每轮中可能会有两个玩家输入相同的数字,并且这两个数字都最接近黄金点或最远离黄金点,需要同时给他们加减分数。还有,最接近黄金点的数字可能会有两个,一个比黄金点多一个比黄金点少,但这种情况发生的概率极低。

界面设计方面,由于是单机版,所以必须合理的使用恰当的控件提供方便快捷直观的操作界面。玩家数和次数选择后不能修改,如需修改必须重新开始。搭配快捷键回车的使用可以快速输入数据无需使用鼠标。界面标签文字提示信息合理。输入数字只允许有1~100之间的有理数,其他输入提示不合法。历史记录可选择是否查看,并可实时给出历史数据。

通过本次结对编程作业,我切身体会到了结对编程的优点,既提高了效率,又让枯燥的编程变得更有趣味,结对编程的过程中需要时刻保持交流从而让对方了解自己的思路。在互相交流的过程中,又从对方身上学到了更多新的知识。同时我注意到,每个人的编程习惯不同,代码规范不同,所以我们先统一了规范,否则有强迫症的我会看着会很蓝瘦的_(:з」∠)_

以下是界面预览:

项目源代码:https://coding.net/u/dreamtofly/p/GoldenPointGame/git

按要求附工作合照一张_(:з」∠)_

搭档的博客主页:http://www.cnblogs.com/HelloAI

结对编程—黄金点游戏WinForm单机版的更多相关文章

  1. 结对项目--黄金点游戏(邓乐&曾亮)

    #include<stdio.h> #include<stdlib.h> #include<Windows.h> int result[100][1000000]; ...

  2. 黄金点游戏 结队i项目

    结对编程——黄金点游戏   本次的结对编程的项目是黄金点游戏,我的结对对象是冯雨倩,我们的编程能力都不太好,而且都对C语言更熟悉些,因此我们决定用C语言来实现. (1)分工:角色分配:冯雨倩是领航员, ...

  3. 结对编程--基于android平台的黄金点游戏

    游戏内容: 阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或1 ...

  4. 软件工程 in MSRA 黄金点游戏-第一次结对编程

    简单介绍 第一次结对编程,邹欣老师选择了一个博弈游戏作为题目.博弈论是一门非常有趣的学科.之前竞赛时接触的博弈论大部分都是存在均衡点/必胜策略的.像这次这种多人参与,没有完美策略,你方唱罢我登台的游戏 ...

  5. 黄金点游戏(js+css)

    一.项目描述:黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0 ...

  6. 基于js脚本的单机黄金点游戏

    题目描述 N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G( ...

  7. 结对编程--Goldpoint Game

    黄金点游戏 黄金点游戏描述: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值. ...

  8. ASE "黄金点游戏"

    问题定义 黄金点游戏是源于经济学家Richar Thaler构思的在1997年伦敦金融时报进行了一次公开竞猜活动.MSRA-ASE课程的第一次结对编程中,我们写了一个AI Bot来与大家玩儿这个游戏. ...

  9. 结对编程-地铁续(有种上个学期OO的既视感)

    我们组比较特殊..三人结对 github:https://github.com/qingchanghan/WPFUI_Metro po一张照片: 石浩然,韩青长.陈彦吉 (台式机真的很高端,分屏贼帅) ...

随机推荐

  1. HDU 2546

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  2. SQL serve 聚合函数、字符串函数

    1.聚合函数 sum,avg,max,min,count        having后面只能跟聚合函数 2.数学函数和字符串函数 3.练习: 1)新建一个学生信息表,根据问题写出程序. 2)新建一个超 ...

  3. NLP文本情感分类传统模型+深度学习(demo)

    文本情感分类: 文本情感分类(一):传统模型 摘自:http://spaces.ac.cn/index.php/archives/3360/ 测试句子:工信处女干事每月经过下属科室都要亲口交代24口交 ...

  4. 【iCore3 双核心板】例程十五:USB_CDC实验——高速数据传输

    实验指导书及代码包下载: http://pan.baidu.com/s/1gemYjz9 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  5. ios-滚动视图滚动取消键盘

    _scroll.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;_SearchTable.keyboardDismissMode ...

  6. 并发两个Thread的怪事——已解决

    截图是马士兵视频的代码.我这样试了下,的确可行. 但是一般来说,主线程就是用来启动子线程的,所以我用了下图的形式,运行了3次.结果运行结果一直在变化,并且都没有正确的显示内容.这个截图里面编号11的线 ...

  7. UINavigationBar 总结

    一.某个 ViewController 出现隐藏 NavigationBar - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear ...

  8. centos 修改网卡名为eth0

    centos7和centos6的命名规则不同,centos6网卡名由udev控制 网卡名以eth开头然后第一块网卡叫eth0第二块网卡叫eth1,然后centos7的网卡命名规则截然不同 centos ...

  9. OceanBase架构浅析(一)

    http://www.cnblogs.com/LiJianBlog/p/4779934.html 简介 OceanBase是阿里集团研发的可扩展的关系数据库,实现了数千亿条记录.数百TB数据上的跨行跨 ...

  10. Android 自定义RecyclerView 实现真正的Gallery效果

    http://blog.csdn.net/lmj623565791/article/details/38173061