每次使用Level
时,我需要将return main();
加1。
我需要一些不需要在int main()
中设置变量的东西,或者每次都绕过level = 0;
的变量,但是第一次,但我不知道该怎么做。
如果那里有一些编码向导,如果您能帮助我,我将不胜感激(是的,我用Level
替换了欢迎消息中的"placeholder"
)。
我尝试制作一个新文件,将其放在int main() {}
上方,并在结束代码之前使用变量在开始之前将其设置为1,以便仅将{{1} }设为0,如果另一个变量(我们将其称为level
)为1,则此操作无效,因为每次将reset
设为0时,变量将再次启动。那没有用,所以我摆脱了它。
reset
应该每次运行int main()
{
int level;
level = 0;
system("cls");
//varibles
int secret, guess;
// color
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
//the number that you guess!
srand(time(NULL));
secret = rand() % 100 - 0;
cout << " Number Guessing Game!" << endl;
cout << "----------------------------------" << endl;
cout << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 6);
cout << "Welcome my name is Luffy Computron. your currant level is " << "placeholder" << endl;
cout << " I will randomly pick a number between 0 and 100" << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 22);
cout << "Take a guess" << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
cout << "Guess:";
cin >> guess;
while (guess != secret) {
if (guess > secret) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 6);
cout << "Too large. Try again." << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
}
if (guess < secret) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 6);
cout << "Too small. Try again." << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
}
cout << "Guess:";
cin >> guess;
}
if (guess == secret) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 6);
cout << "Congradulations!" << endl;
if (level == 1) {
cout << "you are now an untrained aprentice of the computron team";
cout << "to become an aprentice play 4 more times!";
}
}
Sleep(2000);
return main();
}
时将level
更改一次
但它保持在1。
答案 0 :(得分:5)
请勿致电main()
。围绕要重复的内容使用循环:
int main() {
bool running = true;
int level = 0;
while(running) {
//...
++level;
} // <- your old return main(); replaced with }
}
这将在代码中标记的while(running) {
和}
之间循环,直到将running
更改为false
。您还可以使用break;
退出最近的环绕循环,如下所示:
while(true) {
if(some_condition) break;
}
应该在每次运行return main()时将级别更改一次; 但它保持在1。
在当前代码中,您在level = 0;
的开头分配main()
。通过使用上述循环,分配将仅发生一次。