私は現在、コンピューターと対戦するペーパーロッカーシザーズゲームを作っています。誰が最大得点に達したかを制御するための私のwhileループは凍っています。以下の方法が読みにくく、十分な情報があることを願っています。基本的には、私がゲームをして移動をしようとすると、プログラムがただちにフリーズします。私はwhileループなしでプログラムを試してみましたが、うまくいきます。私はそれを作ったので、すべての動きは数字です。ロックは0、はさみは1、紙は2です。メソッドcomputerPlayer.newChoice();別のクラスからランダムに生成された番号です。whileループのフリーズ
public void newChoice() {
while (humanS < 3 && computerS < 3) {
computerPlayer.newChoice();
if (playerChoice == 0) {
viewer.jLblHumanM.setText("Sten");
if (computerPlayer.choice == 0) {
viewer.jLblComputerM.setText("Sten");
} else if (computerPlayer.choice == 1) {
HScore += 1;
viewer.jLblComputerM.setText("Sax");
viewer.jLblHumanS.setText("" + HScore);
} else if (computerPlayer.choice == 2) {
CScore += 1;
viewer.jLblComputerM.setText("Påse");
viewer.jLblComputerS.setText("" + CScore);
}
} else if (playerChoice == 1) {
viewer.jLblHumanM.setText("Sax");
if (computerPlayer.choice == 0) {
HScore += 1;
viewer.jLblComputerM.setText("Sten");
viewer.jLblHumanS.setText("" + HScore);
} else if (computerPlayer.choice == 1) {
viewer.jLblComputerM.setText("Sax");
} else if (computerPlayer.choice == 2) {
HScore += 1;
viewer.jLblComputerM.setText("Påse");
viewer.jLblHumanS.setText("" + HScore);
}
} else if (playerChoice == 2) {
viewer.jLblHumanM.setText("Påse");
if (computerPlayer.choice == 0) {
viewer.jLblComputerM.setText("Sten");
HScore += 1;
viewer.jLblHumanS.setText("" + HScore);
} else if (computerPlayer.choice == 1) {
viewer.jLblComputerM.setText("Sax");
CScore += 1;
viewer.jLblComputerS.setText("" + CScore);
} else if (computerPlayer.choice == 2) {
viewer.jLblComputerM.setText("Påse");
}
}
}
}
する必要があります。.. – assylias
あなたの 'humanS'や' computerS'変数をインクリメントしているとは思いません... – brso05
このコードを実行しているスレッドはありますか? – talex