0

プログラミングの初心者で、じゃんけんゲームを作成するための簡単なプログラムを書いていますが、引き続きエラーが表示されます。このプログラムを開始/実行している間、変数 Rock Paper と Scissors を認識しないようで、else 条件に直行します。また、後で解析しようとすると

int exit = 4;
while (exit != userchoice){
JOptionPane.showInputDialog("Choose wisely. Enter:\n 1 for Rock \n 2 for Paper "
        + "\n 3 for Scissors \n or 4 to Exit:\n");

プログラムはそこで停止するだけなので、他の方法を見つけるのにまだ苦労しています。また、このプログラムは、私が行っている状態でどのように終了しますか? このループを終了する方法をまだ理解していません。単純な最終ブラケットを使用すると、条件が満たされるとループが終了すると考えていたため、この場合は数字の 4 を入力します。

助けていただければ幸いです。ありがとうございました。

    public static void main(String[] args) {
    String inString = null;
    int compchoice = (int)(Math.random() * 3);
    int userchoice = 0;
    int Rock = 1, Paper = 2, Scissors = 3;

    Scanner input = new Scanner(System.in);
    JOptionPane.showMessageDialog(null, 
            "Welcome to JanKenPo! It is You Vs. The Computer\n");

    int exit = 4;
    while (exit != userchoice){
    JOptionPane.showInputDialog("Choose wisely. Enter:\n 1 for Rock \n 2 for Paper "
            + "\n 3 for Scissors \n or 4 to Exit:\n");

    if (userchoice == Rock && compchoice == Paper) {
            JOptionPane.showMessageDialog(null, "Paper covers Rock! You win this Round.");
            }             
    else if (userchoice == Rock && compchoice == Scissors){
            JOptionPane.showMessageDialog(null, "Rock crushes Scissors! You win this Round.");
            }        
    else if (userchoice == Scissors && compchoice == Paper){
            JOptionPane.showMessageDialog(null, "Scissors cuts Paper! You win this round.");
            }
    else if (userchoice == Paper && compchoice == Rock){
            JOptionPane.showMessageDialog(null, "Paper Covers Rock! Computer wins this Round.");
            }
    else if (userchoice == Paper && compchoice == Scissors){
            JOptionPane.showMessageDialog(null, "Scissors cuts Paper! Computer wins this Round.");
            }
    else if (userchoice == Scissors && compchoice == Rock){
            JOptionPane.showMessageDialog(null, "Rock crushes Scissors! Computer wins this Round.");
            }
    else if (userchoice == compchoice){
            JOptionPane.showMessageDialog(null, "It's a Tie! Both you and the computer chose the same object.");
        }
    else{
        exit = Integer.parseInt(inString);
        }
    }   
}
JOptionPane.showMessageDialog(null, "Good Bye!");
}
4

2 に答える 2

1

あなたがする必要があります

String input = JOptionPane.showInputDialog(...);
userChoice = Integer.parseInt(input);

現在、あなたは入力を完全に無視しており、設定していませんuserChoice:)

于 2013-03-06T19:16:32.413 に答える
0

上記と同様に、次のことを行う必要があります。 showInputDialog() から入力を取得しているため、スキャナーは必要ありません。while ループ本体に追加します{

String input = JOptionPane.showInputDialog(...);

userChoice = Integer.parseInt(input);

int compchoice = (int)(Math.random() * 3) +1;

+1 を追加すると出力 b/w 1-3 が得られ、これを while ループに追加する必要があります。これは、ループが実行されるたびにコンピューターが選択を行う必要があるためです。

また、elseブロックから行を削除します exit =Integer.parseInt(inString);

ユーザーが選択肢 4 を入力すると、プログラムは終了します。

于 2013-03-06T20:57:47.587 に答える