Я преподаю свое С ++ на стороне, и я понимаю, что этот вопрос может показаться полезным для некоторых. В игре, которую я делаю как часть процесса обучения, я хочу, чтобы пользователь мог выбрать трудность, и когда они выбирают тот или иной диапазон значений случайных чисел. Компилятор, который я использую, кстати, это x-Code. Вот код:Redefiniton of int error
#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;
}
В 2 ошибки возникают в случае 2 и 3, где я пытаюсь переопределить значение secretNumber.
Я не совсем уверен, что вопрос в том...? –
Вы предполагали, что число меняется после каждой догадки, правильно или неправильно? Потому что это то, что он делает прямо сейчас.Оператор 'switch (choice)' должен находиться вне внутреннего цикла, если вы хотите один номер за игру, а не за догадку. – cHao