gpt4 book ai didi

c++ - 一个扭曲的高低游戏

转载 作者:行者123 更新时间:2023-11-30 05:37:36 25 4
gpt4 key购买 nike

卡在这个 C++ 作业上。这是一个典型的 Hi-lo 游戏,由计算机生成一个从 1 到 100 的随机数,需要 N 名玩家来猜测这个数字。玩家人数为3-5人。如果输入小于/大于数字,则下一位玩家的范围将相应改变(例如,如果 secret 数字为 10,而玩家 1 输入 5,则下一位玩家显示的范围为 5-100,而不是1-100)。

问题是作业要求进行 G 场比赛(其中 G > = N,玩家人数)。游戏的数量,不像玩家的数量,如果没有限制的话(所以只要超过玩家的数量就OK)。最重要的是,每场比赛都必须从不同编号的球员开始(例如,第一场比赛从球员 1 开始,然后是球员 2....球员 N,而第二场比赛从球员 2 开始,球员 3....球员N,回到玩家 1)。

他们不断输入猜测,直到有人得到 secret 数字,然后记录该特定玩家的分数。

我如何用每场比赛改变的球员号码来编码得分记录?我是初学者,被困了一整天......我已经附上了我的东西。注意*:仅使用 if、if-else、while、do-while、for、break、continue 和 switch 语句。

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int N, G;
cout << "How many players (3-5)?" << endl;
cin >> N;
while (N < 3 || N > 5){
cout << "Number of players must be 3-5! Try again.";
cin >> N;
} //Make sure 3-5 players
cout << "How many games?" << endl;
cin >> G;
while (G < N) {
cout << "At least " << N << "games! Try again.";
cin >> G;
}//Make sure G>=N

srand(N * G); //initalizing RNG

int g, secret, x, lo, hi; //repeat for N players for G games, define secret, input x, lower bound and higher bound
for (g = 1; g <= G; g++) {
secret = rand() % 100 + 1; //secret number is an interger between 1 and 100
lo = 1;
hi = 100;
cout << "Game #" << g << ":";
while (x != secret) {
cout << "Player" << (g - 1) % N + 1 << ", make a guess (" << lo << "-" << hi << "):";
cin >> x; //ask starting player to guess the number...?
while (x < lo || x > hi) {
cout << "Guess must be between" << lo << "and" << hi << "Please try again.";
cin >> x; //ask again if they input not within lo-hi range
}
if (x < secret) {
cout << "Your guess is Lo.";
lo = x;
g++; // so that the player number gets updated
}
else if (x>secret) {
cout << "Your guess is Hi.";
hi = x;
g++;// so that the player number gets updated
}
else {
cout << "Boom! Player" << (g - 1) % N + 1 << "loses.";
}//get out of loop and begin new game, but HOW DO WE SAVE THE SCORE?! :(
}
}//each game is played

return 0;
}

最佳答案

因为这是作业,所以我不会给你代码。但是,这里是您应该开始的逻辑。

您是否需要在程序本身的执行之间存储它?如果程序关闭后需要保存分数,则需要使用文件。查找C++ File IO .

如果程序关闭后不需要保存分数,您可以使用声明在变量范围之外的数据结构。需要考虑的一些选项是struct(用于在一个对象中存储多条信息)、vectorarray(用于存储连续的片段)的信息,例如每次玩的时间,或存储一组玩家),或用于一些更复杂设置的自定义类/对象。这不是我能帮你决定的。您需要逐一查看并做出决定。

由于这是家庭作业,到目前为止,您已经在类里面和书中学到了编写该程序所需的一切知识。引用您的教科书,如果您真的遇到困难,请与您的教授交谈 - 这就是他的目的。

关于c++ - 一个扭曲的高低游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33156617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com