【发布时间】:2013-08-20 18:44:14
【问题描述】:
我在一边自学 C++,我意识到这个问题对某些人来说似乎是补救性的。在我制作的游戏中,作为学习过程的一部分,我希望用户能够选择一个难度,并且当他们选择一个或另一个时,随机数值范围会发生变化。顺便说一下,我使用的编译器是 x-Code。代码如下:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int secretNumber;
int main() //integrate difficulty chooser where easy is a number b/w 1 and 10, norm 1 and 50, and hard is 1 and 100
{
srand(static_cast<unsigned int>(time(0))); //seeds random number by time read on system
int guess;
int choice;
char again = 'y';
cout << "\tWelcome to Guess My Number\n\n";
cout << "Please choose a difficulty:\n";
cout << "1 - Easy\n";
cout << "2 - Normal\n";
cout << "3 - Hard\n";
cin >> choice;
while (again =='y')
{
int tries = 0;
int secretNumber;
do
{
cout << "Enter a guess: ";
cin >> guess;
++tries;
switch (choice)
{
case 1:
cout << "You picked Easy.\n";
int secretNumber = rand() % 10 + 1;
break;
case 2:
cout << "You picked Normal.\n";
int secretNumber = rand() % 50 + 1;
break;
case 3:
cout << "You picked Hard.\n";
int secretNumber = rand() % 100 + 1;
break;
default:
cout << "You have made an illegal choice.\n";
}
if (guess > secretNumber)
{
cout << "\nToo high!";
}
else if (guess < secretNumber)
{
cout << "\nToo low!";
}
else if (guess == secretNumber && tries == 1)
{
cout << "\nThat's unbelievable! You guessed it in exactly 1 guess";
}
else
{
cout << "\nGreat job, you got it in just " << tries << " guesses!\n";
}
}
while(guess != secretNumber);
cout << "Do you want to play again y/n: ";
cin >> again;
}
return 0;
}
在我尝试重新定义 secretNumber 的值的情况 2 和 3 中发生 2 个错误。
【问题讨论】:
-
我不太确定问题是什么...?
-
您是否打算在每次猜测后改变数字,对还是错?因为这就是它现在正在做的事情。
switch (choice)语句应该在内部循环之外,如果您希望每场比赛一个数字,而不是每次猜测。
标签: c++ int redefinition