2016-04-17 10 views
-2

Ich habe einen Algorithmus für mein Java-Hang-Man-Spiel gemacht, das die Benutzer raten zu einem Array, das die Vermutung zu einem Buchstaben im Wort entspricht. Wenn die Antwort richtig ist, fügt sie den Buchstaben zu arraylist Vermutungen an der gleichen Stelle wie es in dem Wort ist. Sobald die Methode fertig ist Aus irgendeinem Grund gibt die Antwort immer falsch zurück.Probleme mit Java Galgenmännchen Spiel

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"); 

      } 

     } 

Antwort

0

Sie iterieren i aber Sie versuchen guess gegen einen Charakter im Index z zu vergleichen. Ich glaube nicht, dass Ihr Code auch richtig formatiert ist, aber das ist sicherlich ein Problem.

Btw mögen Sie vielleicht Verwendung der String-Methode machen stattdessen Ihre Schleife mit

+0

Wenn der .contains() verwendet, wie würde ich den Eingang zu einer bestimmten Position in meinen Vermutungen Array hinzufügen. Im Moment habe ich diesen Code, aber wenn ich meine for-Schleife entferne, kann ich den Tipp nicht auf eine bestimmte Position setzen. rate.set (i, rate + ""); –

+0

Die Verwendung enthält oder nicht wird Ihr Problem nicht lösen, möglicherweise nur Ihren Code verbessern. Du hast recht, dass du den Index irgendwann auch brauchen wirst. Was ist mit meinem Hauptkommentar über die Iteration? –