• 结对编程:黄金点游戏


    一.游戏内容

    黄金点游戏是一个数字小游戏,其游戏规则是:

    N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动。

    二.程序实现功能

    每次输入N个数字,计算出平均值和G点,输入数字最靠近G的同学得N分,离G最远的同学得到-2分,其他同学得0。将每轮G点与每个同学对应的各自成绩打印出来。游戏结束后将每人成绩总和输出,可以看出第几名同学胜利。

    三.程序模块

    1.输入

    输入分为两部分:玩家人数与局数、每位玩家的数据输入。用双重循环i、j分别控制玩家输入与游戏局数,并将玩家的输入数据按序存放在数组里。代码如下:

    2.计算G点

    首先将所有玩家数据总数求出来,求出平均值,再将平均值乘0.618后得到G点。我们使用一个函数——count(float a[],int size)求所有玩家数据总数,函数将存数据的数组s[]与数组长度n传入,在函数内部使用循环将总和求出,返回给主函数。将总数返回后在主函数求平均值与G点,并将G点打印出来。函数如下:

    3.比较赋值

    游戏要求玩家输入的数要与黄金点比较,所以我们将玩家输入的数依次与求得的黄金点相减,并将结果放入数组b中,然后对数组中的数用循环进行比较,求出数组b中的最大最小值后,在另一个数组c里对求得的b中最大值所对应下标赋值-2,最小值所对应下标赋值N,其他值赋值0。这样玩家每轮得分就会记录下来,并把分数累加放入数组num中。代码如下:

    四.运行结果

    1.自行输入玩家人数与游戏轮数后开始游戏

    五.总结

    通过多次实验我们发现黄金点确实在向下移动。本次要求结对编程,两个人写一个程序,这对于两个人的默契有很大的考验,我的结对伙伴是李帅伟,这次我们的合作还是很顺利的,经过多次交流,我们也有了一定的默契,有些问题能想到一起去,这样解决起来就很快。程序的编写与改错是我与李帅伟共同完成的,互相学习,互相进步,在我编写时出现了不少错误,李帅伟能够快速发现并给与改正。我认为结对编程很快速地提高了我的编程能力,对我有很大的帮助。下面附合作照片一张。

  • 相关阅读:
    var、let、const
    面向女朋友自我介绍
    ES6——class
    一个错误引发的——对异步回调与for循环(小白错误,大神勿进)
    关于this
    关于作用域
    HTML5 8
    HTML5 7
    HTML5 6
    HTML5 4
  • 原文地址:https://www.cnblogs.com/syh2013040101006/p/5370420.html
Copyright © 2020-2023  润新知