【发布时间】:2017-06-06 19:09:20
【问题描述】:
我正在学习“Udemy - 通过开发你的第一个游戏来学习 C++ 编码”,这是一门虚幻引擎 C++ 基础课程,在本课程中,您将开发一个用户尝试猜测单词的小游戏。
代码运行良好。但我想添加它。我创建了下面的代码,效果很好。但它是UGGGGLLLY。由于我仍处于早期学习阶段,我想开始养成正确的习惯。
所以问题是如何使所有这些 If 语句消失或浓缩。 如果我想再添加 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 = rand() % 10, 1; 你在这里用逗号是什么意思?
-
你为什么不简单地使用
FString的数组呢?然后就是MyHiddenWord = HidenWordArray[ISecret - 1]; -
@melpomene A 颜色。注意单数 A。所以这真的不是反例。
-
@melpomene 颜色是单个聚合。您创建这个单一聚合的容器。
-
一条Employee记录可以用50个字段来描述。程序员将创建单个结构或类,而不是
Employee employee1, employee2, employee3, etc.,它只是Employee employee[50],或类似的结构。不知道还能怎么解释我的观点。
标签: c++ string if-statement