我正在尝试编写骰子游戏,不知道下一步该怎么做。这是我的代码
total = roll();
if(total == 9 || total == 11 || total == 18 || total == 24)
{
System.out.println("You win");
}else if(total == 6 || total == 12 || total == 13 || total == 17 || total == 19 || total == 23 )
{
System.out.println("You lose");
}else
{
int gn = total;
System.out.println("You goal number is now " + gn);
do{
roll = roll();
}while(roll != gn);
System.out.println("You win");
}
public static int roll()
{
Random rand = new Random();
int die1 = rand.nextInt(6) + 1;
int die2 = rand.nextInt(6) + 1;
int die3 = rand.nextInt(6) + 1;
int die4 = rand.nextInt(6) + 1;
int total = die1 + die2 + die3 + die4;
System.out.println("You rolled " + total);
return total;
}
如果用户不输赢数(9、11、18或24)或输输数(6、12、13、17、19或23),则该数字成为您的目标,您必须掷出直到您再次获得该数字,或者直到掷出13并输了为止。
在达到目标数字之前,我一直在工作,但是如果滚动13,我不知道如何使其停止。
答案 0 :(得分:0)
do
/ while
循环具有延续条件。目前,您的循环将继续进行,直到达到total
,此时用户将获胜:
do {
roll = roll();
} while(roll != gn);
要处理硬编码的13
,请将&& roll != 13
添加到延续条件:
do {
roll = roll();
} while(roll != gn && roll != 13);
但是,现在您需要弄清楚循环结束的原因-是赢还是输。您可以在循环外将roll
与13
进行比较,以做出决定:
System.out.println("You " + (roll != 13 ? "win" : "lose"));
答案 1 :(得分:0)
do {
roll = roll();
} while(roll != gn && roll != 13);
System.out.println("You " + (roll == 13)?"lose":"win");