2016-04-17 200 views
-2

我做了一個我的Java掛人遊戲算法,增加了用戶猜測數組匹配的猜測與字中的一個字母。如果答案是正確的,它會將該字母添加到與該單詞中相同位置的數組列表猜測中。一旦方法完成由於某種原因,答案總是返回不正確。麻煩與爪哇Hang子手遊戲

public class HangMan 
{ 
    public final int GAME=9; 
public void Hangman() 
{ 
words(); 
} 
String nerd=""; 
public void words() 
{ 
Scanner in = new Scanner(System.in); 
Random randomgenerator =new Random(); 
int random = randomgenerator.nextInt(4); 
String myArray[]={"albatross","cat","mitosis","computer","coding"}; 
nerd=myArray[random]; 
//get length of word 
int length=nerd.length(); 

     //create hangman 
     System.out.println(" ------"); 
     System.out.println(" |"); 
     System.out.println(" |"); 
     System.out.println(" |"); 
     System.out.println(" |"); 
     System.out.println("____"); 
     System.out.println("Guess a letter!"); 



     //create dashes 
     for(int z=0;z<length;z++) 
     { 
     System.out.print("_"); 
     } 
    } 




public void check() 
{ 

ArrayList<String>guesses=new ArrayList<String>(); 
    //Inputs a scanner 
    Scanner in = new Scanner(System.in); 

     // pre condition:if player guess equals a char in nerd 

      String guess1=in.nextLine(); 
      char guess=guess1.charAt(0); 
      for(int i=0;i<nerd.length();i++) 
      { 

      } 
       if(guess==nerd.charAt(z)) 
       { 


       System.out.println("Correct"); 
       System.out.println("Your word so far"); 
       System.out.print(guesses); 
        guesses.set(z, guess+""); 
       System.out.println("You have"); 
       System.out.print(nerd.length()-z); 
       System.out.print("guesses left"); 

       } 



      //pre condition: if the guess is wrong 
      else 
      { 
      System.out.println("Wrong"); 
      System.out.println("Your word so far"); 
      System.out.print(guesses); 
      System.out.println("You have"); 
      System.out.print(nerd.length()-z); 
      System.out.print("guesses left"); 

      } 

     } 

回答

0

你迭代i,但是你想在索引z比較guess對一個字符。我不認爲你的代碼格式完全正確,但這肯定是一個問題。

順便說一句,你可能想利用字符串的方法而不是用循環

+0

當使用。載有()我會怎麼輸入添加到我的猜測陣列的特定位置。現在我有這個代碼,但如果我刪除我的for循環,我不能設置猜測到一個特定的位置。 guesses.set(i,guess +「」); –

+0

使用含有或不會解決你的問題,只是潛在地改善你的代碼。你說的對,因爲你也需要索引。我關於迭代的主要評論怎麼樣? –