Java HangMan游戏

时间:2016-05-24 20:22:50

标签: java bluej

我正在做这个刽子手项目,我差不多完成了,但我不能让输出显示所有正确的字母来代替下划线,而是只显示刚输入的正确字母。请帮忙。

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

}

1 个答案:

答案 0 :(得分:1)

你应该创建一个名为lettersGuessed的变量,该变量最初是空字符串,""ArrayList<Character>.然后在每次猜测之后,或者此行char guess = Expo.enterChar();添加char guess到您的ArrayList或String(如果您不熟悉arraylist,我建议使用字符串)lettersGuessed += guess;然后System.out.println("Letters guessed: " + lettersGuessed)

相关问题