string gibt beim Anhängen von @ null zurü

Ich wurde beauftragt, ein Wortschatzspiel zu erstellen. Sie haben nur 5 Versuche, das Wort zu erraten. Der Benutzer gibt jeweils einen Buchstaben ein, um zu versuchen, mein geheimes Wort herauszufinden, das "Saft" ist, aber Sie sollten mit einem Hinweiswortkonstrukt arbeiten, bei dem jede Vermutung die Sternchen durch den richtigen Buchstaben ersetzt, wenn es korrekt ist.

Dies ist, wie die Ausgabe aussehen soll:

Willkommen zum Wort Ratespiel! Sie haben 5 Versuche, das geheime Wort zu erraten! Der aktuelle Hinweis ist

Errate einen Kleinbuchstaben

u

* u ***

rrate das geheime Wo

tutre

Weiter versuchen

Errate einen Kleinbuchstaben

t

* u ***

rrate das geheime Wo

mutor

Weiter versuchen

... Fährt bis zu 5 Versuchen fort, dann gewinnst oder verlierst du

Meine Ausgabe lässt nicht zu, dass Sie versuchen, zu raten, und das Hinweiswort ist offensichtlich durcheinander, da es die Null vor den 5 Sternchen enthält. Ich bin nicht sicher, wie ich es beheben soll.

Der aktuelle Hinweis ist

Null****

Errate einen Kleinbuchstaben

j

jull *

rrate das geheime Wo

jutre

Weiter versuchen

Spiel ist aus! Versuch es noch einmal

Hier ist meine Klasse:

public class SecretWord {
private String secretWord;
private String hintWord;
private int numberOfTurns;

//Default Constructors
public SecretWord()
{
    this.secretWord = "juice";
    for (int i = 0; i < secretWord.length(); i++)
    {
        this.hintWord+="*";
    }
    this.numberOfTurns = 0;
}
//Accessors
public String getSecretWord()
{
    return this.secretWord;
}
public String getHintWord()
{
    return this.hintWord;
}
public int getNumberOfTurns()
{
    return this.numberOfTurns;
}
//Mutators
public void setSecretWord ()
{
    this.secretWord = "juice";
}
public void setHintWord ()
{
    char[] correctLetters = new char[secretWord.length()];
    for (int i = 0; i<secretWord.length();i++)
    {
        hintWord+="*";
        correctLetters[i] += '*';
    }
}
public void setNumberOfTurns (int i)
{
    this.numberOfTurns = 5;
}
//Methods
public void guessLetter(char guess)
{
    String tempHintWord="";
    for (int i = 0; i < secretWord.length(); i++)
    {
        if (secretWord.charAt(i) == guess)
        {
            tempHintWord += guess;
        }
        else
        {
            tempHintWord += hintWord.charAt(i);
        }
    }
    hintWord = tempHintWord;
}

Hier ist meine Fahrerklasse:

public class SecretWordGame {

//Constant for number of tries
public static final int NUM_TRIES = 5;

public static void main (String[] args)
{
    Scanner keyboard = new Scanner(System.in);

    //Starts game
    boolean quit = false;
    while (quit == false)

    {
        System.out.println("Welcome to the word guessing game! You have " +
                +NUM_TRIES+" tries to guess the secret word!");

                SecretWord myWord = new SecretWord();
        System.out.println("The current hint is \n"+myWord.getHintWord());

        while (myWord.getNumberOfTurns() <NUM_TRIES)
        {
            System.out.println("Guess a lowercase letter");

            //Gets the first letter of what is entered

            char guess = keyboard.nextLine().charAt(0);

            //Updates the hint by calling guess letter method

            myWord.guessLetter(guess);

            System.out.println(myWord.getHintWord());

            System.out.println("Guess the secret word");

            String myGuess = keyboard.nextLine();
            //Checks correct guess
            if (myGuess.equals(myWord.getSecretWord()))
            {
                System.out.println("You win!");
                break;
            }
            else
            {
                System.out.println("Keep trying!");
            }

            myWord.setNumberOfTurns(myWord.getNumberOfTurns()+1);
        }
        //Prompts user to play again

        System.out.println("Game over! Try again?");

        String userInput = keyboard.nextLine();
        if(userInput.equalsIgnoreCase("no"))
        {
            quit = true;
        }
        else
        {
            System.out.println("Let's go again!");
        }
    }
    System.out.println("Goodbye!");
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage