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

“阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏: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. log4net 配置应用

    (一). WinForm 或者 WPF 中的配置和应用 <?xml version="1.0" encoding="utf-8" ?> <co ...

  2. 使用UEditor 的时候,ajax注意使用同步的方法

    使用UEditor 的时候,ajax注意使用同步的方法去读取后台数据,然后填写到前端的文本域当中.

  3. error CS0016: 未能写入输出文件

    win7 下解决办法: 1.打开C:\Windows ,找到 TEMP 文件夹 2. 进行权限设置,点击编辑,找到 IIS-User,勾选所有权限

  4. purge mysql自带命令清除binlog

    #!/bin/bash DATAUSER=root DATAPASS=shiyiwen DAY=$1 if [ ! $# == 1 ];then echo -e "\033[32m USAG ...

  5. Vue 双向数据绑定原理分析 以及 Object.defineproperty语法

    第三方精简版实现 https://github.com/luobotang/simply-vue Object.defineProperty 学习,打开控制台分别输入以下内容调试结果 userInfo ...

  6. HSV色彩空间

    HSV是把H(色相),S(饱和度),V(亮度)当做色值来定位颜色的空间.色相的取值范围是0~360度,用来表示颜色的类别.其中红色是0度,绿色是120度,蓝色是240度.饱和度的取值范围是0%~100 ...

  7. mysql分区及实例演示

    一.为什么要分区? 需求:大数据.解决方案:分而治之,更细一点即为.将大表和大索引分为一个更小的操作单元 在mysql中,分区允许将表.索引和索引编排表细分为更小的单元.分区后,每个分区有自己单独的名 ...

  8. A Great Alchemist

    Time limit : 2sec / Stack limit : 256MB / Memory limit : 256MB ProblemCarol is a great alchemist. In ...

  9. JNDI数据源局部配置(解决Cannot create JDBC driver of class '' for connect URL 'null')

    最开始,我是借鉴 孤傲苍狼的JNDI教程去做的,他讲得很详细,但是坏处也就是因为他讲的太详细.查了很多书,都是建议说不要用全局去配置JNDI,一是要修改tomcat的server.xml,容易破坏to ...

  10. youtube视频下载

    开你的电脑,然后打开你的浏览器,浏览器可以是IE.Chrome.Firefox等等   在浏览器中输入这个网址:en.savefrom.net,点击Enter键,进入这个网页:   打开你需要下载的y ...