刽子手从不打印'你赢了'

时间:2016-10-29 09:59:09

标签: java printing

刚刚开始了计算机科学学位并且已经完成了制作一个Hangman游戏的任务,它似乎工作找不到它没有打印“你赢了”,我无法看到/弄清楚为什么它没有。你们的任何帮助都会很棒。

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    Random rand = new Random();
    char[] alpha = new char[26];
    Arrays.fill(alpha, ' ');

    String a1 = "intro to programming";
    String a2 = "computer";
    String a3 = "mouse and keyboard";
    String a4 = "skyrim";
    String a5 = "hello world";

    int selector = rand.nextInt(5) + 1;
    char[] words = null;
    char[] show = null;

    if (selector == 1) {
        words = a1.toCharArray();
        show = a1.toCharArray();
        Arrays.fill(show, '-');
    } else if (selector == 2) {
        words = a2.toCharArray();
        show = a2.toCharArray();
        Arrays.fill(show, '-');
    } else if (selector == 3) {
        words = a3.toCharArray();
        show = a3.toCharArray();
        Arrays.fill(show, '-');
    } else if (selector == 4) {
        words = a4.toCharArray();
        show = a4.toCharArray();
        Arrays.fill(show, '-');
    } else if (selector == 5) {
        words = a5.toCharArray();
        show = a5.toCharArray();
        Arrays.fill(show, '-');
    }

    int length = words.length;
    System.out.println("Please enter the amount of tries you would like:");

    int amount = scan.nextInt();
    String guessed;
    char guessedchar;
    for (int i = 0; i < length; i++) {
        if (words[i] == ' ') {
            show[i] = ' ';
        }
    }

    int x = 0;
    while (amount >= 0) {
        System.out.print("String to guess: ");
        for (char n : show) {
            System.out.print(n);
            System.out.print(" ");
        }
        System.out.println(" ");
        System.out.println("Number of tries left: " + amount);
        System.out.print("Number of times you have tried: ");

        for (char a : alpha) {
            System.out.print(a);
            System.out.print(" ");
        }
        System.out.println(" ");
        System.out.println("Enter a guess");
        guessed = scan.next();
        guessedchar = guessed.charAt(0);
        alpha[x] = guessedchar;

        for (int i = 0; i < length; i++) {
            if (guessedchar == words[i]) {
                show[i] = guessedchar;
            }
        }

        x = x + 1;
        amount = amount - 1;
        if (amount == 0) {
            System.out.println("You lose");
            return;
        } else if (show == words) {
            System.out.println("You won");
        }
    }

}

1 个答案:

答案 0 :(得分:0)

将单词和show数组转换为Strings并检查它们是否与.equals()相等,然后应该显示正确的消息