所以,我正在为这个课程进行这项任务。这是一个Java类,我应该制作一个游戏,它会掷出两个骰子,将它们加起来,并将它们添加到轮到分数中。然后问你是否想继续玩。当你的回合得分达到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");
}}
在您使用的程序的一部分player2'player1turn = A + B'当你想用'player2turn = A + B' –