Я занимаюсь разработкой «Udemy - Learn to Code на C++ путем разработки вашей первой игры», нереального базового курса C++, и в этом курсе вы разрабатываете небольшую игру, в которой пользователь пытается угадать слово.Очистка нескольких операторов if C++
Код отлично работает. Но я хотел добавить к этому. Я создал код ниже, и он отлично работает. Но это UGGGGLLLY. И поскольку я все еще нахожусь на ранней стадии обучения, я хотел начать развивать правильные привычки.
Итак, вопрос в том, как сделать все это. Если утверждения уходят или конденсируются. Если я хочу добавить еще 50 слов, я не хочу создавать еще 50 операторов if.
Я попытался изменить ISecret на FString и использовать это число, чтобы получить номер из HIDDEN_WORD [1], но он не работал так, как планировалось.
Вот что я имею в виду:
ISecret[1-100] = MyHiddenWord[1-100] = HIDDEN_WORD[1-100]
Я знаю, что это не будет работать, и я знаю, что я должен перечислить «слова» в банке, но я могу создать текстовый банк и только список все слова в банке?
int32 ISecret; //This section generates a
srand(time(NULL)); // random number between 1 and 10.
ISecret = rand() % 10, 1;///
const FString HIDDEN_WORD01 = "planet";
const FString HIDDEN_WORD02 = "bait";
const FString HIDDEN_WORD03 = "dog";
const FString HIDDEN_WORD04 = "cat";
const FString HIDDEN_WORD05 = "stream";/// These are the Hidden words
const FString HIDDEN_WORD06 = "taco";
const FString HIDDEN_WORD07 = "ship";
const FString HIDDEN_WORD08 = "balcony";
const FString HIDDEN_WORD09 = "tail";
const FString HIDDEN_WORD10 = "barf";
if (ISecret == 1){MyHiddenWord = HIDDEN_WORD01;}
else if (ISecret == 2){MyHiddenWord = HIDDEN_WORD02;}
else if (ISecret == 3){MyHiddenWord = HIDDEN_WORD03;}// These make is so
else if (ISecret == 4){MyHiddenWord = HIDDEN_WORD04;}//what ever number
else if (ISecret == 5){MyHiddenWord = HIDDEN_WORD05;}//is randomly
else if (ISecret == 6){MyHiddenWord = HIDDEN_WORD06;}//generated that
else if (ISecret == 7){MyHiddenWord = HIDDEN_WORD07;}//the correct
else if (ISecret == 8){MyHiddenWord = HIDDEN_WORD08;}//HIDDEN_WORD
else if (ISecret == 9){MyHiddenWord = HIDDEN_WORD09;}//is chosen.
else if (ISecret == 10){MyHiddenWord = HIDDEN_WORD10;}
*** ISecret = рандов()% 10, 1; *** Что вы имеете в виду делать здесь с запятой? – drescherjm
Почему бы вам просто не использовать массив 'FString'? Тогда это просто 'MyHiddenWord = HidenWordArray [ISecret - 1];' – PaulMcKenzie
Есть и другие вещи, которые вы должны рассмотреть. Каждый раз, когда добавляется новое слово, вы должны изменить свой код - это неудобно, так как вам нужно перестроить свое приложение.Вместо этого подумайте о том, чтобы прочитать слова из внешнего файла в 'std :: vector' или аналогичный контейнер, тогда не будет никаких изменений кода, если количество слов будет увеличено (или уменьшено). – PaulMcKenzie