Java版的刽子手游戏猜错了

Java版的刽子手游戏猜错了,java,Java,我有一个关于刽子手游戏的问题,我正试图用java完成这个游戏,只是为了我自己的学习。我的问题是,目前在我的代码中,无论每次猜测是对是错,尝试的次数总是倒数计时。所以基本上你只有10次去找出单词,然后游戏结束 我想要的是,如果猜测是正确的,那么尝试的次数将保持为当前的次数,只有当我猜错的时候,它才会倒计时1 我想知道如何实现这一点,因为我正在努力转换代码来实现这一点: 以下是全部代码: import java.util.Random; import java.util.Scanner; publ

我有一个关于刽子手游戏的问题,我正试图用java完成这个游戏,只是为了我自己的学习。我的问题是,目前在我的代码中,无论每次猜测是对是错,尝试的次数总是倒数计时。所以基本上你只有10次去找出单词,然后游戏结束

我想要的是,如果猜测是正确的,那么尝试的次数将保持为当前的次数,只有当我猜错的时候,它才会倒计时1

我想知道如何实现这一点,因为我正在努力转换代码来实现这一点:

以下是全部代码:

import java.util.Random;
import java.util.Scanner;

public class Game {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        String[] movieList = {"The Simpsons Movie", "Batman Begins", "Terminator"};

        boolean weArePlaying = true;
        while (weArePlaying) {
            System.out.println("Welcome to Guess The Movie Game");

            char[] randomWordToGuess = movieList[random.nextInt(movieList.length)].toLowerCase().toCharArray();
            int wordLength = randomWordToGuess.length;
            char[] playerGuess = new char[wordLength];

            for (int i = 0; i < playerGuess.length; i++) {
                    playerGuess[i] = '_';
            }

            for (int i = 0; i < randomWordToGuess.length; i++) {
                if (randomWordToGuess[i] == ' ') {
                    playerGuess[i] = ' ';
                }
            }

            boolean wordCompleted = false;
            int attempts = 10;

            while (!wordCompleted && attempts != 0) {
                System.out.println("Current guess: ");
                printArray(playerGuess);
                System.out.println("Number of attempts left: " + attempts);
                System.out.println("Enter a letter");
                char input = scanner.nextLine().charAt(0);
                attempts--;

                if (input == '-') {
                    weArePlaying = false;
                    wordCompleted = true;
                }

                else {
                        for (int i = 0; i < randomWordToGuess.length; i++) {
                            if (randomWordToGuess[i] == input) {
                                playerGuess[i] = input;
                            }
                        }


                    if (isTheWordCompleted(playerGuess)) {
                        wordCompleted = true;
                        System.out.println("You Won!!!");
                        System.out.println("Do you want to play again? (yes/no)");
                    }
                }

            }

            if (!wordCompleted) {
                System.out.println("You ran out of movieList. Game Over");
                System.out.println("Do you want to play again? (yes/no)");
                String anotherGame = scanner.nextLine();
                if (anotherGame.equals("no")) {
                    weArePlaying = false;
                } else if (anotherGame.equals("yes")) {
                    weArePlaying = true;
                } else {
                    System.out.println("Do you want to play again? (yes/no)");
                }
            }

        }

        System.out.println("Game Over");
    }

    public static void printArray(char[] array) {
        for (int i = 0; i < array.length; i++) {
           System.out.print(array[i] + " ");
        }
        System.out.println();
    }

    public static boolean isTheWordCompleted(char[] array) {
        for (int i = 0; i < array.length; i++) {
            if (array[i] == '_') {
                return false;
            }
        }
        return true;
    }
}
import java.util.Random;
导入java.util.Scanner;
公开课游戏{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
随机=新随机();
String[]movieList={“辛普森一家的电影”,“蝙蝠侠开始”,“终结者”};
布尔值weArePlaying=true;
while(穿戴式播放){
System.out.println(“欢迎猜电影游戏”);
char[]randomWordToGuess=movieList[random.nextInt(movieList.length)].toLowerCase().toCharArray();
int wordLength=randomWordToGuess.length;
char[]playerGuess=新字符[wordLength];
for(int i=0;i
每当有输入时,您都在减少尝试计数:

char input = scanner.nextLine().charAt(0);
attempts--; //remove this line from here
修改检查用户输入的部件,如下所示:

Boolean flag = false;
for (int i = 0; i < randomWordToGuess.length; i++) {
    if (randomWordToGuess[i] == input) {
       playerGuess[i] = input;
       flag = true; //user input is correct
       break;
    }
}

if (!flag){ //user input is wrong
   attempt--;
}
Boolean标志=false;
for(int i=0;i
仅放置
尝试--如果猜测不正确。