• 黄金点游戏(补发)


    1.项目介绍

    黄金点游戏是一个小游戏,我们组的黄金点游戏设计简单,属于单机类游戏。主要针对的是人数较少的人群,操作简单,更易于比较各玩家的得分。

    2.代码来源
    来源:https://github.com/TalosLin/QTL

    3.项目分析

    我们的小游戏分几个阶段。首先是用户进入界面,在界面上我们很贴心的为每位新来的玩家设置了指南,游戏规则以及游戏得分算法。接下来就是设置的游戏轮数玩家可以选择需要进行的游戏场数。在选择好场数以后就是游戏的人数,可以是10以内也可以是10以外。然后每位玩家输入自己想输入的数字,但我们仅支持整数,最后全部的得分以及本轮得分都由算法完成。玩家就只需要等待数秒就能知道自己的得分。

    4.bug排查

    在拿到这个代码的时候我们测试是没有问题的,但是当我们进行游戏测试时发现,我们自己计算的黄金点跟计算机计算的黄金点不一样,并且差距较大。后来我们检查代码时发现,算法出错。原始代码在计算G值时把第二次玩家输入的数字当做了总人数,导致平均数计算出错。我们修改了代码,添加了玩家人数M当做平均数的分母。接下来代码运行也成功了,黄金点跟我们计算的值一样。项目基本完成。

    5.项目扩展

    对于这个代码的扩展,我认为我们可以在游戏进入时加上玩家name输入,也可以在最后游戏结束时添加恭喜xxx胜利.......

    6.游戏某些部分介绍

    开始时我对游戏里计算出来的本轮得分和总得分不是很懂。我以为出错了,后来当我仔细看了代码后发现,本轮得分指的是当前这次游戏的得分,而总得分更是关于所有轮次的得分。

    7.以下是代码,感谢参考

    #include <iostream>
    #include<math.h>
    using namespace std;
    void main()
    {
    int i, j, num, N, M, S[100], S2[100], S3[100] = { 0 };
    double S1[100], ave, sum, G;
    double max, min;
    cout << "==============欢迎进入黄金点游戏!============" << endl;
    cout << "=============================================" << endl;
    cout << "=====================v指南v==================" << endl;
    cout << "===1.N个玩家(N通常大于10)进行游戏============" << endl;
    cout << "===2.每人写一个0~100之间的有理数 (除0和100)==" << endl;
    cout << "===3.G=N位玩家平均值*0.618===================" << endl;
    cout << "===4.最高分(N): 提交数字最接近G值的玩家======" << endl;
    cout << "===5.最低分(-2):提交数字距离G值最远的玩家====" << endl;
    cout << "===6.其他分(0): 其他所有玩家=================" << endl;
    cout << "Please input the number of your game!" << endl;
    cin >> N;
    cout << "The number of the person:" << endl;
    cin >> M;
    for (i = 1; i <= N; i++)
    {
    sum = 0;
    G = 0;
    cout << "Input the number between 1 to 100." << endl;
    for (j = 1; j <= M; j++)
    {
    cout << " Player " << j << " input your choose!" << endl;
    cin >> num;
    S[j] = num;
    sum = sum + S[j];
    }
    ave = sum / M;
    G = ave*0.618;
    cout << "黄金点是G=" << G << endl;
    for (j = 1; j <= M; j++)
    {
    S1[j] = abs(S[j] - G);
    }
    max = min = S1[1];
    for (j = 1; j <= M; j++)
    {
    if (S1[j] >= max)
    max = S1[j];
    else if (S1[j] < min)
    min = S1[j];
    }
    for (j = 1; j <= M; j++)
    {
    if (S1[j] == max)
    S2[j] = -2;
    else if (S1[j] == min)
    S2[j] = M;
    else S2[j] = 0;

    }
    for (j = 1; j <= M; j++)
    {
    cout << "本轮分数" << "S2[" << j << "]=" << S2[j] << endl;
    S3[j] = S3[j] + S2[j];
    cout << "总分数 " << "S3[" << j << "]=" << S3[j] << endl;
    }
    }
    system("pause");
    }

  • 相关阅读:
    解决GitHub下载速度太慢的问题
    java监测硬盘空间大小
    @SuppressWarnings注解用法详解
    No goals have been specified for this build.
    java新建excel文件导出(HSSFWorkbook)
    mysql日志文件路径
    获取select框下option所有值
    jquery获取select选中的值
    mysql查看查询缓存是否启用
    Kafka消息重新发送
  • 原文地址:https://www.cnblogs.com/qian8949695/p/8179552.html
Copyright © 2020-2023  润新知