制作一个刽子手游戏如何将我的userInput与单词中给定的字符串/ char进行比较,然后我如何以某种方式记录此正确字符的位置以显示给用户。
namespace ConsoleApplication5
{
class Program
{
/* static int ResponseCorrect()
{
Random rnd = new Random();
int response = rnd.Next(1, 4);
switch (response)
{
case 1:
RandWord = "Robot";
break;
case 2:
RandWord = "Fish";
break;
case 3:
RandWord = "James";
break;
case 4:
RandWord = "Chocolate";
break;
}
return response;
}*/
static void Main(string[] args)
{
string value = "Robot";
int userInput = 0;
string inData = "";
string inData2 = "";
char myletter = 'd';
bool letterinWord = false;
Console.WriteLine("Welcome to Hangman, Please select a number between 1 and 4 for your number!");
inData = Console.ReadLine();
userInput = Convert.ToInt32(inData);
Console.WriteLine("This is your first guess, enter a letter");
inData2 = Console.ReadLine();
myletter = Convert.ToChar(inData2);
char[] array = value.ToCharArray();
for (int counter = 0; counter < array.Length; counter++)
{
char letter = array[counter];
if (myletter == letter)
{
letterinWord = true;
}
}
if (letterinWord == true)
Console.WriteLine("Congratulations");
else
Console.WriteLine("u suck");
}
}
}
答案 0 :(得分:2)
如何将我的userInput与单词
中给定的字符串/ char进行比较
字符串本质上是一组字符,也称为array
chars
。
这意味着您可以执行以下操作,从index
(字符串)的集合中获取某个chars
(位置):
var someWord = "Filip Ekberg";
Console.WriteLine(someWord[0]);
这会将以下内容打印到您的控制台:
˚F
因为我们要求在阵列中找到第一个位置。
您只想一次要求一个角色,所以我们假设您希望用户写下:F
,然后按Enter
。现在,您只想使用F
,对吧?所以你可以这样做:
var input = Console.ReadLine();
var firstCharacter = input[0];
if(firstCharacter == someWord[0]) { /* Yay! /* }
请注意0
索引的“硬编码”someWord
?那些不是我们想要的,对吧?所以我们想做类似以下的事情:
只要我们“活着”,就要求用户输入。可能在while(true)
内有一个计数器,你可以检查
运行for循环,检查someWord
数组中的每个字符:
for(var i = 0; i < someWord.Length; i++) { /* Now we can use someWord[i] /* }
如果在for循环中检查时没有出现您输入的字符,请将生命减少一个!