结对编程—黄金点游戏WinForm单机版
本小游戏场景来自邹欣老师的《移山之道》一书:
“阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏: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单机版的更多相关文章
- 结对项目--黄金点游戏(邓乐&曾亮)
#include<stdio.h> #include<stdlib.h> #include<Windows.h> int result[100][1000000]; ...
- 黄金点游戏 结队i项目
结对编程——黄金点游戏 本次的结对编程的项目是黄金点游戏,我的结对对象是冯雨倩,我们的编程能力都不太好,而且都对C语言更熟悉些,因此我们决定用C语言来实现. (1)分工:角色分配:冯雨倩是领航员, ...
- 结对编程--基于android平台的黄金点游戏
游戏内容: 阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或1 ...
- 软件工程 in MSRA 黄金点游戏-第一次结对编程
简单介绍 第一次结对编程,邹欣老师选择了一个博弈游戏作为题目.博弈论是一门非常有趣的学科.之前竞赛时接触的博弈论大部分都是存在均衡点/必胜策略的.像这次这种多人参与,没有完美策略,你方唱罢我登台的游戏 ...
- 黄金点游戏(js+css)
一.项目描述:黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0 ...
- 基于js脚本的单机黄金点游戏
题目描述 N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G( ...
- 结对编程--Goldpoint Game
黄金点游戏 黄金点游戏描述: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值. ...
- ASE "黄金点游戏"
问题定义 黄金点游戏是源于经济学家Richar Thaler构思的在1997年伦敦金融时报进行了一次公开竞猜活动.MSRA-ASE课程的第一次结对编程中,我们写了一个AI Bot来与大家玩儿这个游戏. ...
- 结对编程-地铁续(有种上个学期OO的既视感)
我们组比较特殊..三人结对 github:https://github.com/qingchanghan/WPFUI_Metro po一张照片: 石浩然,韩青长.陈彦吉 (台式机真的很高端,分屏贼帅) ...
随机推荐
- log4net 配置应用
(一). WinForm 或者 WPF 中的配置和应用 <?xml version="1.0" encoding="utf-8" ?> <co ...
- 使用UEditor 的时候,ajax注意使用同步的方法
使用UEditor 的时候,ajax注意使用同步的方法去读取后台数据,然后填写到前端的文本域当中.
- error CS0016: 未能写入输出文件
win7 下解决办法: 1.打开C:\Windows ,找到 TEMP 文件夹 2. 进行权限设置,点击编辑,找到 IIS-User,勾选所有权限
- purge mysql自带命令清除binlog
#!/bin/bash DATAUSER=root DATAPASS=shiyiwen DAY=$1 if [ ! $# == 1 ];then echo -e "\033[32m USAG ...
- Vue 双向数据绑定原理分析 以及 Object.defineproperty语法
第三方精简版实现 https://github.com/luobotang/simply-vue Object.defineProperty 学习,打开控制台分别输入以下内容调试结果 userInfo ...
- HSV色彩空间
HSV是把H(色相),S(饱和度),V(亮度)当做色值来定位颜色的空间.色相的取值范围是0~360度,用来表示颜色的类别.其中红色是0度,绿色是120度,蓝色是240度.饱和度的取值范围是0%~100 ...
- mysql分区及实例演示
一.为什么要分区? 需求:大数据.解决方案:分而治之,更细一点即为.将大表和大索引分为一个更小的操作单元 在mysql中,分区允许将表.索引和索引编排表细分为更小的单元.分区后,每个分区有自己单独的名 ...
- A Great Alchemist
Time limit : 2sec / Stack limit : 256MB / Memory limit : 256MB ProblemCarol is a great alchemist. In ...
- JNDI数据源局部配置(解决Cannot create JDBC driver of class '' for connect URL 'null')
最开始,我是借鉴 孤傲苍狼的JNDI教程去做的,他讲得很详细,但是坏处也就是因为他讲的太详细.查了很多书,都是建议说不要用全局去配置JNDI,一是要修改tomcat的server.xml,容易破坏to ...
- youtube视频下载
开你的电脑,然后打开你的浏览器,浏览器可以是IE.Chrome.Firefox等等 在浏览器中输入这个网址:en.savefrom.net,点击Enter键,进入这个网页: 打开你需要下载的y ...