私はクラスのこの課題に取り組んでいます。これはJavaクラスで、2つのサイコロを振って追加して、あなたのターンスコアに追加するゲームを作るはずです。それから、あなたが遊び続けるかどうか聞いてきます。あなたのターンスコアが20に達するか、またはあなたが合格すると、それはコンピュータに行きます。それは各ターンの得点を印刷することになっています。そして誰かが100ポイントを当てたら勝者を発表します。しかし、何回でも、各ターンの最後のスコアは0で、何回何回実行しても問題ありません。プレイヤーが1をロールすると、そのターンの得点はキャンセルされ、それは他のプレイヤーに移り、ダブル1を倒すと、それまでのゲームのポイントはすべて失われます。ここで私のコードは、スコア変数が更新されない理由を理解できますか?ありがとうございました。なぜそれが正しく解決されていないのかわかりません
import java.util.Scanner;
import java.util.Random;
public class PlayPig {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int player1 = 0;
int player2 = 0;
int a, b, c, player1turn, player2turn, input;
int pig = 1;
Random r = new Random();
do{
do {
player1turn=0;
a = r.nextInt(6)+1;
b = r.nextInt(6)+1;
if(a==1 || b==1){
if (a == 1 && b == 1){
player1=0;
break;}
else if (a==1 || b==1){
player1turn=0;
break;}
else {
player1turn= a+b ;
}}
player1= player1+player1turn;
System.out.println("Player1 score is " + player1 + " and player2 score is " + player2);
System.out.print("Do you want to keep playing? Enter 1 to continue. Enter any other number to pass.");
input = scan.nextInt();
if (input != 1)
break;
}
while
(player1turn <= 20);
do{
player2turn=0;
a = r.nextInt(6)+1;
b = r.nextInt(6)+1;
if(a==1 || b==1){
if (a == 1 && b == 1){
player2=0;
break;}
else if (a==1 || b==1){
player2turn=0;
break;}
else {
player1turn= a+b ;
player2= player2+player2turn;}}
}
while
(player2turn<=20);
}
while
(player1 < 100 || player2 < 100);
if (player1>player2)
System.out.print("Player 1 wins");
else
System.out.print("Player 2 wins");
}}
:あなたはこれを試すことができます –