我不熟悉编程,正在尝试制作更高或更低的游戏,但是有一些问题。首先,我想让程序在猜对卡时循环,即选择较低的选项,并且较低。但是,它在第​​二个循环后崩溃,什么也没有发生。游戏结束后,我会选择再次玩,什么都没有发生。如果有人可以帮助我解决这些问题,将不胜感激。谢谢

import

最佳答案

尝试这个 :

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int card = 0;
    int cardNext;

    String userResponse;
    String userPlayAgain;
    boolean userGuessedRight = true;

    do {
        do {
            Random randomNumbers = new Random();
            card = randomNumbers.nextInt(13 - 1 + 1) + 1;
            System.out.println("Card is " + card);

            System.out.print("Higher or Lower?");
            cardNext = randomNumbers.nextInt(13) + 1;
            userResponse = scan.next();
            userGuessedRight = (userResponse.equalsIgnoreCase("H") && cardNext >= card)
                    || (userResponse.equalsIgnoreCase("L") && cardNext <= card);

            if (userGuessedRight) {
                System.out.println("Card is " + cardNext);
                System.out.print("Higher or Lower?");
                userResponse = scan.next();
            } else {
                break;
            }
        } while (userResponse.equalsIgnoreCase("H") && cardNext < card || userResponse.equalsIgnoreCase("L") && cardNext > card);
        System.out.println("Card is " + cardNext);
        System.out.println("Card is higher/lower you lose – play again? Y/N : ");
        userPlayAgain = scan.next();
    } while (userPlayAgain.equalsIgnoreCase("Y"));

    do {
        if (userPlayAgain.equalsIgnoreCase("N"))

        {
            System.out.print("Thank You.");
            break;
        }

    } while (!userPlayAgain.equalsIgnoreCase("Y"));

    scan.close();
}


编辑

这是输出:

07-24 09:38
查看更多