黄金点游戏二人结对项目总结

经过近两个星期结对项目编程,从中收获了很多也发现了许多自身存在的问题。结对编程过程中比如讨论分工问题,起初不知如何下手,后来经过慢慢讨论有了比较合理的分工。我和我的同伴有着不同性格和工作方式,在做项目的过程中会有很多不同的思路和想法,编程习惯也不相同。他喜欢从整体入手,先想好程序的每一个环节,构思好整体后,才开始编程。就我而言,我习惯一层一层,循序渐进的进行编程,将每个环节做好然后进行下一项,虽然效率有点慢,但是对我来说,这种方式能让我在编程的时候少出错。我很喜欢我同伴预先做好整体构思的方法,很便捷,对于后面的编程我会尝试着用这种方式编写代码,这对培养大局观很有帮助。

  编程过程中,因为要考虑到局数和人数,所以就定义了一个二维数组,行标表示第几局游戏,列标表示人数,用二维数组来存储每个玩家输入的数据,然后计算黄金点,对每个玩家进行游戏评分,将得分放到另一个数组中。统计每轮个玩家游戏得分,输出最终得分,存入文件中。编程过程很顺利没有遇到太大问题,有一些小的错误很快就改正了。我们没有做界面,同学有用JAVA做的,界面做的非常好,我也正在学习JAVA。不过目前只能写个HELLO WORLD。

  对于游戏中的输入数值有减小的趋势这一现象我们在理想情况下做个假设,玩家的数据肯定是随机输入,那么平均值就和该组数据的中间值(数据从小到大排列)很接近,黄金点在平均值基础上乘0.618,约在前一半数据的中上部,即整组数据的30%左右(数据从小到达排列),如此一来大家就会发现胜者的数据往往比较小,自然而然在新一轮游戏开始时都会适当减小自己的数据。

程序代码:

#include <stdio.h>
#include <math.h>
#include<stdlib.h>
void main()
{
int a[20][20], grade[20], i, j, k1, k2, t, b, data, total = 0;
double min = 100, max = 0, average = 0;
FILE *fp;
char ch;
printf("请输入游戏局数:\n");
scanf_s("%d", &t);
printf("请输入游戏人数:\n");
scanf_s("%d", &b);
for (j = 0; j < b; j++)
{
grade[j] = 0;
}
for (i = 0; i < t; i++)
{
printf("第%d局游戏开始:\n", i + 1);
printf("请依次输入参与者的数据:\n");/*单局中输入相同数据者只有最先输入者得分*/
for (j = 0; j < b; j++)
{
scanf_s("%d", &data);
a[i][j] = data;
total = total + data;
}
average = total / b*0.618;
printf("黄金点为:%.4f", average);/*打印黄金点*/
for (j = 0; j < b; j++)
{
if (fabs(a[i][j] - average) < min)
{
min = fabs(a[i][j] - average);
k1 = j;
} /*寻找当前局距离黄金点最近的人*/
if (fabs(a[i][j] - average) > max)
{
max = fabs(a[i][j] - average);
k2 = j;
} /*寻找当前局距离黄金点最远的人*/
}
grade[k1] = grade[k1] + t; /*为胜者加分*/
grade[k2] = grade[k2] - 2; /*为负者减分*/
printf("输出本局得分:\n");
for (j = 0; j < b; j++)
{
printf("%d ", grade[j]);
}
printf("\n");
min = 100;
max = 0;
total = 0;
}
printf("游戏结束,各人得分如下:\n");
if ((fp = fopen("d:\\zmh.txt", "w+")) == NULL)
{
printf("cannot open file");
exit(1);
}
for (j = 0; j < b; j++)
{
printf("%d ", grade[j]); /*打印各人得分*/
if (grade[j] < 0)
{
grade[j] = abs(grade[j]);
ch = ‘-‘;
fputc(ch, fp);
}
ch = grade[j] + ‘0‘;
fputc(ch, fp);
ch = ‘ ‘;
fputc(ch, fp);

}
printf("\n");
max = 0;

for (j = 0; j < b; j++)
{

if (grade[j] > max)
{
max = grade[j]; /*比较出最高分数*/
}

}
for (j = 0; j < b; j++)
{
if (grade[j]==max)
printf("最高得分者是第%d人 %d分\n", j + 1, grade[j]);/*最高得分者可并列*/
}
fclose(fp);

getchar();
getchar();
}

时间: 2024-10-12 07:05:54

黄金点游戏二人结对项目总结的相关文章

返回一个整数数组中最大子数组的和。(二人结对编程)

 题目:返回一个整数数组中最大子数组的和. 要求: 1.要求程序必须能处理1000 个元素: 2.每个元素是int32 类型的,出现子数组之和大于整型表示的最大范围会出现什么情况: 3.输入一个整型数组,数组里有正数也有负数. 4.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 5.求所有子数组的和的最大值.要求时间复杂度为O(n).  设计思想:(1)将数组大小定义为n,用户输入p的值以确定该数组的长度,对于这n个元素用随机函数进行生成,每个元素定义为int32类型.(2)为

结对项目的完成与体会

项目名称:黄金点游戏 合作人:赵海东  2013040101112  http://www.cnblogs.com/zhaohaidong/ 赵海东同学是我老乡,所以在生活之间的交流中不会有何多大的分歧,但是在本次项目的交流中,遇到了不少的分歧:我是属于:自己码的代码,无论如何都要从我的思路先执行代码,然后再进行改进:然而在老乡同学是希望在探讨中寻求最好的方案,一起执行.不能说孰对孰错,只能说想法不一样,但是在本次的结对项目中,更加的注重与人处事,想法不一不必强求,为的是同一个目标,寻求更大的进

结对项目实验报告

结对实验报告 结对人曹文静的地址: http://www.cnblogs.com/liandiexueying/ 一.实践目标: 敏捷方法之结对编程实践 学会与他人合作 基于项目的Github源代码管理 继续学习JUnit4单元测试 形成良好的编码风格 二.结对项目参考题目 连连看小游戏. 三.实验报告内容 1.题目简介 游戏规则是模仿网络上普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题.当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理.在两张想同图片

(第五周)结对项目——黄金点游戏

黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项目,必须由二人

结对编程——黄金点游戏之旅【二】

一.黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数(不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分. 二.后续功能的实现功能 经过三天的努力,我们终于完成了开始游戏.取消准备.查看历史纪录.添加测试以及退出登录功能. 1.开始游戏(准备游戏)功能介绍:玩家登陆成功后直接进入游戏界面,下方的准备窗口会

黄金点游戏(结对项目)

黄金点游戏 基本要求:N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分. 主要功能: 每位玩家输入名字和数字(必须大于两位玩家),最后一位玩家点击结束游戏,由程序计算出G值,并判断每位玩家的得分情况. 设计思想: 我们组是在android平台上开发的这个游戏,因为android提供了更好的图

结对编程之黄金点游戏

   一.关于游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项目,必

结队项目(黄金点游戏)

一.项目内容 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项目,必须由二

结对编程-黄金点游戏

一.项目描述:黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项