2013-12-09 72 views
-4

做一個hang子手遊戲我該如何將我的userInput與給定的字符串/字中的字符進行比較,然後如何以某種方式記錄這個正確字符的位置以顯示回用戶。初學者試圖在C#中做一個Hang子手程序

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比較給定的字符串/字符在單詞

字符串是基本字符的集合,又稱charsarray

這意味着,你可以chars(串)的集合內完成從這樣的事情來獲得一定index(位置):

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! /* } 

通知爲someWord指數 「硬編碼」 0?這些並不是我們想要的,對吧?所以我們想要做類似如下的事情:

  1. 只要我們是「活着的」,詢問用戶輸入。可能有while(true)內部計數器您檢查,對

  2. for循環運行一來檢查someWord陣列中的每個字符:

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

  3. 如果沒有字符出現您輸入當你在for循環中檢查時,減少一個人的生命!