C++ ++;操作员在猜谜游戏中不工作?
我正在根据教程做一个愚蠢的猜谜游戏。我需要退出循环,如果有10个猜测,没有正确的答案。每个有效的guess(int的有效用户输入)都需要更新guess_输入变量,该变量在开始时为0。 print_guesses功能用于列出用户最多猜10次或猜对后输入的猜测。这是我试图完成guess_输入(或尝试的猜测次数)更新的代码 游戏函数中的猜测输入似乎没有更新,因为打印猜测函数没有列出用户输入的所有有效猜测。 此外,游戏功能将允许您在10次错误但有效的输入后,在最终执行我想要执行的代码之前猜测大约20次C++ ++;操作员在猜谜游戏中不工作?,c++,C++,我正在根据教程做一个愚蠢的猜谜游戏。我需要退出循环,如果有10个猜测,没有正确的答案。每个有效的guess(int的有效用户输入)都需要更新guess_输入变量,该变量在开始时为0。 print_guesses功能用于列出用户最多猜10次或猜对后输入的猜测。这是我试图完成guess_输入(或尝试的猜测次数)更新的代码 游戏函数中的猜测输入似乎没有更新,因为打印猜测函数没有列出用户输入的所有有效猜测。 此外,游戏功能将允许您在10次错误但有效的输入后,在最终执行我想要执行的代码之前猜测大约20次
if (guess_input == 9)
{ std:: cout << "Sorry! You lost, your guesses were \n \n";
print_guesses (guesses, guess_input);
}
if(猜测输入==9)
{std::cout>猜测[猜测输入])
{
}
否则{std::cout
这段代码在三次猜测中读取,每段代码中读取一次。但它只增加guess\u输入
一次。如果目的是为每次猜测增加guess\u输入
一次,那么这段代码根本不会这样做。不,先生,目的是只为其中一个(在bu中列出的)增加guess\u输入
它在一个块中不递增,或者它看起来是这样,或者我的理论也是这样。我试图使它递增,只有当猜测是错误的和有效的(不是一个字符或符号)@UVBakesandBeyond您想读取三个输入,并且只增加一次guess\u输入
?如果是这样,为什么您的问题会说这不是您想做的?我说过我想增加guess\u输入
,当猜测不正确但有效时。@UVBakesandBeyond正确,而这段代码不这样做,因为它读取三个猜测,最多可以增加一次guess\u input
。你看到这段代码读三次猜测吗?你看到这段代码最多增加guess\u input
一次吗?我想我错了,先生。也许下面的说法不正确……我相信这段代码通过使用guess\u input
变量作为索引位置设置器(因为缺少更好的术语),每次以下代码为trueif(guess[guess\u input]!=answer&&std::cin>>guess[guess\u input])
如果确实是这样的话,我不明白为什么这不起作用。
if (guess_input == 9)
{ std:: cout << "Sorry! You lost, your guesses were \n \n";
print_guesses (guesses, guess_input);
}
void game ()
{
srand(time(NULL));
int guesses [10];
int answer = rand () % 501;
int guess_input = 0;
std:: cout << answer;
std:: cout << "\n \n";
std:: cout << "Guess the answer";
std:: cout << "\n \n";
for (int i = 0; true; i++)
{
std:: cin >> guesses [guess_input];
if (guesses [guess_input] != answer && std:: cin >> guesses [guess_input] )
{ guess_input++;
}
if (std:: cin >> guesses [guess_input])
{
}
else { std:: cout << "Enter a valid choice \n \n";
std:: cin.clear ();
std:: cin.ignore ();
}
if (guess_input == 0 && guesses [guess_input] == answer)
{std:: cout << "Correct! No incorrect guesses!";
break;
}
if (guesses [guess_input] == answer)
{ std:: cout << "Correct! Your guesses were \n \n";
print_guesses (guesses, guess_input);
}
if (guess_input == 9)
{ std:: cout << "Sorry! You lost, your guesses were \n \n";
print_guesses (guesses, guess_input);
}
}
}
#include <iostream>
#include <cstdlib>
#include <ctime>
void print_guesses (int array_parameter [], int array_count)
{
std:: cout << "Your guesses were \n \n";
for (int i = 0; i < array_count; i ++)
{
std:: cout << array_parameter [i] << '\n';
}
}
void game ()
{
srand(time(NULL));
int guesses [10];
int answer = rand () % 501;
int guess_input = 0;
std:: cout << answer;
std:: cout << "\n \n";
std:: cout << "Guess the answer";
std:: cout << "\n \n";
for (int i = 0; true; i++)
{
std:: cin >> guesses [guess_input];
if (guesses [guess_input] != answer && std:: cin >> guesses [guess_input] )
{ guess_input++;
}
if (std:: cin >> guesses [guess_input])
{
}
if (guess_input == 0 && guesses [guess_input] == answer)
{std:: cout << "Correct! No incorrect guesses!";
break;
}
if (guesses [guess_input] == answer)
{ std:: cout << "Correct! Your guesses were \n \n";
print_guesses (guesses, guess_input);
}
if (guess_input == 9)
{ std:: cout << "Sorry! You lost, your guesses were \n \n";
print_guesses (guesses, guess_input);
}
}
}
void menu ()
{
while (true)
{
short menu_input;
double long test_variable;
std:: cout << "Select 1 to play \n \n";
std:: cout << "Select 9 to quit \n \n";
std:: cin >> menu_input;
if (menu_input == 1)
{ game ();
}
if (menu_input == 9)
{ std:: cout << "See ya!";
break;
}
else
{std:: cout << "Enter a valid menu choice \n \n";
std:: cin.clear ();
std:: cin.ignore ();
}
}
}
int main ()
{
menu ();
}
std:: cin >> guesses [guess_input];
if (guesses [guess_input] != answer && std:: cin >> guesses [guess_input] )
{ guess_input++;
}
if (std:: cin >> guesses [guess_input])
{
}