2013-12-09 3 views
-4

Создание игры в палач, как я могу сравнить свой userInput с данной строкой/символом в слове, а затем как можно как-то записать позицию этого правильного символа, чтобы отобразить обратно пользователя ,Начинающий пытается сделать программу Hangman на C#

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"); 
     } 
    } 
} 
+3

Постарайтесь задать свой вопрос более конкретно, он будет общим на данный момент – Daveo

+1

Удалите ненужный текст и код, чтобы мы могли быстро просмотреть актуальную проблему. Вам не нужно давать нам введение в себя, просто проблема и четкое описание ваших попыток, их результатов и ожидаемых результатов будет достаточно. –

+0

жаль, что это мой первый пост, я думаю, что кто-то отредактировал для меня, спасибо тому, кто это сделал. – user3084866

ответ

2

Как я могу сравнить мое UserInput к данной строке/полукокса в слове

Строка, по существу, совокупность символов, также известный как 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. Выполнить цикл, который проверяет каждый символ в someWord массива:

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

  3. Если не происходило характера ввода когда вы проверяете, что в цикле for, уменьшите жизнь на один!

Смежные вопросы