Piszę grę i chcę ostrzec gracza, jeśli wpis nie jest literą ?. Na przykład, jeśli dane wejściowe to „(” lub „6”, to musi wypisać „nieprawidłowe dane wejściowe”). Potrzebuję również „!”, Aby było prawidłowym wejściem, aby zakończyć grę.

Poniżej znajduje się wersja demonstracyjna gry.

+-----+-----+-----+
|     |     |     |
|     |     |     |
|     |     |     |
|     |     |     |
+-----+-----+-----+

Secret Phrase:   ---
Guessed Letters: 
Enter a letter to guess or "!" to end the game
(
No, ( is not in the phrase

Poniżej znajduje się część dotycząca kodowania

while (gameEnd == false) {
    System.out.println(drawScoreboard(totalGuesses, wrong));
    System.out.println("Enter a letter to guess or \"!\" to end the game");
    letterz = scnr.next();
    for (int i = 0; i < secretPhrase.length(); i++) {
        for (int hk = 0; hk < alreadyGuessed.length(); hk++) {
            if (Character.toString(letterz.charAt(0)).equals(Character.toString(alreadyGuessed.charAt(hk)))) {
                break;
            }
        }
        if (i >= letterz.length()) {
            break;
        } else if ((Character.toString(letterz.charAt(i))).equalsIgnoreCase(Character.toString(secretPhrase.charAt(i)))) {
            System.out.print("\n");
            inc++;
        } else if (letterz.equals("!")) {
            gameEnd = true;
        } else {
            System.out.println("No, " + letterz + " is not in the phrase\n");
            wrong++;
        }
    }
}
0
Ski Mask The Slump God 19 listopad 2019, 07:50
 – 
Scary Wombat
19 listopad 2019, 07:52

1 odpowiedź

Najprostszym sposobem sprawdzenia, czy ciąg pasuje do określonego wzorca znaków, jest metoda String.matches. Na przykład:

guess.matches("[A-Z!]+")

Zwróci prawdę wtedy i tylko wtedy, gdy guess zawiera tylko wielkie litery lub znak !.

2
sprinter 19 listopad 2019, 08:02