【发布时间】:2020-01-21 16:49:38
【问题描述】:
我正在开发一个作为大学项目的策划游戏。用户必须按照一定的顺序猜测多种颜色。问题是,如果用户输入诸如“erd”而不是“red”之类的内容,他的机会就会丢失。我想以某种方式使代码显示“无效颜色!”当他输入无效的东西并让他重新输入他的东西时。我有点做到了,但是有一个小问题,请看下面的代码:
void guess(char guessBall[4][10]) {
for (int i = 0; i < 4; i++) {
cin >> guessBall[i];
if (strcmp(guessBall[i], "red") == 0 || strcmp(guessBall[i], "blue") == 0 ||
strcmp(guessBall[i], "green") == 0 ||
strcmp(guessBall[i], "yellow") == 0 ||
strcmp(guessBall[i], "white") == 0 ||
strcmp(guessBall[i], "black") == 0) {
continue;
} else {
cout << "invalid color!";
i--;
}
}
}
问题是如果用户像这样输入:red blue WRONG black 而不是每次都按回车,它会说“无效颜色!”让他重新进入,但颜色的顺序是错误的。示例:
INPUT: "red WRONG green blue"
OUTPUT: Invalid Color!
INPUT: "Red"
OUTPUT: Your guess: red green blue red
猜测应该是“红红绿蓝”。
如果你们提出任何建议,将不胜感激。 要求的完整代码:编辑:我似乎无法将代码粘贴到我的帖子上,其中的某些部分搞砸了,我不知道该怎么做。我唯一能想到的就是将代码粘贴到 CodePile 页面上。给你:https://www.codepile.net/pile/4rYRMJ93 我认为codepile是一个安全的地方?
【问题讨论】:
-
这不足以让我们重现问题。向我们展示您的程序的最小版本,以便我们自己运行和测试它。
-
我上传了cpp文件,大家可以分析一下
-
向我们展示您的程序的最小版本并将其作为编辑粘贴到您的帖子中。没有人会下载文件。
-
由于无法将代码粘贴到我的帖子上,因此将代码粘贴到 CodePile 上。
-
只需让用户重新输入所有内容。毕竟,在控制台中,您可以简单地按下然后更改内容。此外,您应该打印它不理解的单词,也许还有它们的位置。不要选择“第一个错误的单词被更改”,当两个单词错误但他认为只有一个错误时会导致用户沮丧,例如“red rde green blueeuee”。
标签: c++