Java HangMan游戏 [英] Java HangMan Game

查看:92
本文介绍了Java HangMan游戏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在执行这个hangman项目,我几乎完成了,但是我无法获得输出来显示所有正确的字母来代替下划线,而是仅显示刚刚输入的正确字母. .请帮忙.

I'm doing this hangman project, and I'm almost done, but I can't get the output to show all of the correct letters in place of the underscore, instead it only shows the correct letter that was just entered. Please help.

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

}

推荐答案

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

You should make a variable called lettersGuessed that is either initially an empty string, "", or an ArrayList<Character>. Then after each guess, or this line char guess = Expo.enterChar(); add the char guess to your ArrayList or String (I suggest a string if you are unfamiliar with an arraylist) so lettersGuessed += guess; and then System.out.println("Letters guessed: " + lettersGuessed).

这篇关于Java HangMan游戏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆