卡在这个C++作业上了。这是一个典型的Hi游戏,其中一个随机数是通过计算机从1-100生成的,几个N个玩家必须猜出这个数字。球员的人数是3-5人.如果输入小于/大于数字,则下一个播放器的范围将相应更改(例如,如果秘密号码为10,播放机1输入5,则下一个播放器显示的范围为5-100而不是1-100)。
问题是,赋值要求游戏的G数(其中G>= N,玩家的数目)被玩。游戏的数量,不像玩家的数量,如果没有限制的话(所以只要比玩家的数量多就可以了)。更重要的是,每一场比赛都必须从一个不同的编号玩家开始(例如,第一场比赛从玩家1开始,然后是玩家2....Player N,而第2场比赛开始于玩家2,玩家3....Player N,回到玩家1)。
他们不断地输入猜测,直到一个人得到秘密号码,然后记录该特定球员的得分。
我如何编码得分记录与球员号码改变每一场比赛?我是个初学者被困了一整天..。我把我所有的都附上去了。注意*:只使用if,if- Only,while,do-while,for,断开,语句继续和切换。
#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;
}
发布于 2015-10-15 19:18:38
因为这是作业,我不会给你密码。然而,这是您应该从这里开始的逻辑。
您需要在程序本身的执行过程中存储这些数据吗?如果程序关闭后需要保存分数,则需要使用文件。查一下C++文件IO。
如果程序关闭后不需要保存分数,则可以使用在变量范围外声明的数据结构。需要考虑的一些选项是:struct (用于在一个对象中存储多个信息)、向量或数组(用于存储连续的信息片段,例如每次播放或存储一组播放器),或用于一些更复杂的设置的自定义类/对象。我不能帮你做决定。你将需要查找其中的每一个,并作出决定。
由于这是家庭作业,到目前为止,你在课堂上和书中都会被教授写这个程序所需要的一切。参考你的教科书,如果你真的被困住了,就去找你的教授谈谈--这就是他在那里的目的。
发布于 2015-10-15 19:28:12
也许我不太了解你。
制作牌桌,然后选择回合顺序。然后,您可以保存玩家的得分状态,并开始新的游戏与新的命令,以污水处理。
https://stackoverflow.com/questions/33156617
复制相似问题