初学者试图在C#中制作一个Hangman程序

时间:2013-12-09 23:45:12

标签: c#

制作一个刽子手游戏如何将我的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");
        }
    }
}

1 个答案:

答案 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?那些不是我们想要的,对吧?所以我们想做类似以下的事情:

  1. 只要我们“活着”,就要求用户输入。可能在while(true)内有一个计数器,你可以检查

  2. 运行for循环,检查someWord数组中的每个字符:

    for(var i = 0; i < someWord.Length; i++) { /* Now we can use someWord[i] /* }

  3. 如果在for循环中检查时没有出现您输入的字符,请将生命减少一个!