2016-05-24 11 views
-3

Ich mache dieses Hangman-Projekt, und ich bin fast fertig, aber ich kann die Ausgabe nicht alle korrekten Buchstaben anstelle des Unterstrichs zeigen, stattdessen zeigt es nur den richtigen Buchstaben wurde gerade betreten. Bitte helfen Sie.Java HangMan Spiel

import java.util.Random; 
public class HangManGames 
{ 

    public static int i; 
    public static int errors = 0; 
    public static String wordList[] = {"alabama","alaska","arizona","arkansas","california","colorado","connecticut","delaware","florida","georgia","hawaii","idaho","illinois","indiana","iowa","kansas","kentucky","louisiana","maine","maryland","massachusetts","michigan","minnesota","mississippi","missouri","montana","nebraska","nevada","new hampshire","new jersey","new mexico","new york","north carolina","north dakota","ohio","oklahoma","oregon","pennsylvania","rhode island","south carolina","south dakota","tennessee","texas","utah","vermont","virginia","washington","west virginia","wisconsin","wyoming"}; 
    public static boolean guessLetter; 

    public static String mysteryWord; 
    public static int mysteryWordLength; 
    public static int remainingLetters; 
    StringBuffer buffer = new StringBuffer(); 


    public static void Start() 
    { 
     System.out.println("  _______ "); 
     System.out.println("  |  |"); 
     System.out.println("  |"); 
     System.out.println("  |"); 
     System.out.println("  |"); 
     System.out.println("  |"); 
     System.out.println("  |"); 
     System.out.println("_____|_____ "); 
    } 
    public static void Error1() 
    { 
     System.out.println("  _______ "); 
     System.out.println("  |  |"); 
     System.out.println("  |  ()"); 
     System.out.println("  |  "); 
     System.out.println("  |"); 
     System.out.println("  |"); 
     System.out.println("  |"); 
     System.out.println("_____|_____ "); 
    } 
    public static void Error2() 
    { 
     System.out.println("  _______ "); 
     System.out.println("  |  |"); 
     System.out.println("  |  ()"); 
     System.out.println("  |  |"); 
     System.out.println("  |  |"); 
     System.out.println("  |  |"); 
     System.out.println("  |"); 
     System.out.println("_____|_____ "); 
    } 
    public static void Error3() 
    { 
     System.out.println("  _______ "); 
     System.out.println("  |  |"); 
     System.out.println("  |  ()"); 
     System.out.println("  |  |"); 
     System.out.println("  |  |"); 
     System.out.println("  |  |"); 
     System.out.println("  |  /"); 
     System.out.println("_____|_____ "); 
    } 
    public static void Error4() 
    { 
     System.out.println("  _______ "); 
     System.out.println("  |  |"); 
     System.out.println("  |  ()"); 
     System.out.println("  |  |"); 
     System.out.println("  |  |"); 
     System.out.println("  |  |"); 
     System.out.println("  | /\\"); 
     System.out.println("_____|_____ "); 
    } 
    public static void Error5() 
    { 
     System.out.println("  _______ "); 
     System.out.println("  |  |"); 
     System.out.println("  |  ()"); 
     System.out.println("  |  |"); 
     System.out.println("  |  /|"); 
     System.out.println("  |  |"); 
     System.out.println("  | /\\"); 
     System.out.println("_____|_____ "); 
    } 
    public static void Error6() 
    { 
     System.out.println("  _______ "); 
     System.out.println("  |  |"); 
     System.out.println("  |  ()"); 
     System.out.println("  |  |"); 
     System.out.println("  |  /|\\"); 
     System.out.println("  |  |"); 
     System.out.println("  | /\\"); 
     System.out.println("_____|_____ "); 
    } 
    public static void main(String args[]) 
    { 
     do{ 
      Random random = new Random(); 
      int index = random.nextInt(50); 
      mysteryWord = wordList[index]; 

      mysteryWordLength = mysteryWord.length(); 

      remainingLetters = mysteryWordLength; 
      String result = ""; 
      for (i = 0; i < mysteryWordLength; i++) 
       result += "_ "; 
      System.out.println(result); 
      System.out.println(" "); 
      while (remainingLetters != 0 && errors < 6) { 
       if (errors == 0){ 
        System.out.println(""); 
        Start(); 
        System.out.println("");} 
       else if (errors == 1){ 
        System.out.println(""); 
        Error1(); 
        System.out.println("");} 
       else if (errors == 2){ 
        System.out.println(""); 
        Error2(); 
        System.out.println("");} 
       else if (errors == 3){ 
        System.out.println(""); 
        Error3(); 
        System.out.println("");} 
       else if (errors == 4){ 
        System.out.println(""); 
        Error4(); 
        System.out.println("");} 
       else if (errors == 5){ 
        System.out.println(""); 
        Error5(); 
        System.out.println("");} 
       else if (errors == 6){ 
        System.out.println(""); 
        Error6(); 
        System.out.println("");} 


       System.out.print("Guess a letter:"); 
       char guess = Expo.enterChar(); 
       guessLetter = (mysteryWord.indexOf(guess)) != -1; 



       if (guessLetter == false) { 
         System.out.println("Sorry, bad guess"); 
         errors++; 
         System.out.print(result); 

        } else { 
         System.out.println("Great guess!"); 
         for (i = 0; i< mysteryWordLength; i++) { 
          if (mysteryWord.charAt(i) == guess) 
           System.out.print(guess); 
          else { 

           remainingLetters--; 
           System.out.print("_"); 
           System.out.print(result.charAt(i)); 

          }       
         }       
       }   
      } 
      }while(remainingLetters != 0 && errors < 6); 

     System.out.println(); 
     System.out.println(); 
     if (remainingLetters == 0 && errors <6) 
     { 
      System.out.print("YAY! You Win!"); 
      System.out.println("The word was " + mysteryWord); 
     }else 
     { 
      System.out.println("Game Over! You Lose!"); 
      System.out.println("The word was " + mysteryWord); 
     } 
    }  

} 
+4

Sie müssen verfolgen, welche Teile des Wortes bereits erraten wurden. Wie eine andere Variable "mysteryWordGuessed", bei der Sie die erratenen Buchstaben ersetzen und diese für die Ausgabe verwenden. – mellamokb

Antwort

1

Sie sollten eine Variable machen lettersGuessed genannt, die entweder zunächst ein leerer String, "" oder ein ArrayList<Character>. dann nach jeder Vermutung, oder diese Zeile char guess = Expo.enterChar(); die char guess auf Ihre Arraylist oder String hinzufügen (Ich schlage vor, eine Zeichenfolge Wenn Sie mit einer Arraylist nicht vertraut sind) so lettersGuessed += guess; und dann System.out.println("Letters guessed: " + lettersGuessed).

Verwandte Themen