gpt4 book ai didi

java - 随机掷2个骰子(java)

转载 作者:行者123 更新时间:2023-12-02 00:36:44 25 4
gpt4 key购买 nike

将掷两个骰子,并生成 2 个 1 到 6 之间的随机数。总和将从这 2 个数字中取出并用于决定下一步。如果用户的总和是 3, 5, 7, 9,11 那么他们失去。如果总和是 4、6、8、10,则他们获胜。如果 sum 为 2, 12 那么程序会自动滚动再次掷骰子,直到用户获胜或失败。

  1. 为上述算法创建一个游戏,其中包含以下结构:
  2. 游戏应要求用户输入他/她的名字。
  3. 游戏应该能够生成 1 - 6 之间的随机数。
  4. 程序应该能够显示 3 个备用路径A。 Win : 当随机数在 4 , 6, 8, 10 之间时b.宽松:3、5、7、9、11C。再次播放:2, 12

基本上,如果我从 2 个骰子中得到 2 或 12 的总和,并且必须一次又一次地进入循环,我需要不断获取新的随机数

    public class assessmentrollingdicedemo {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);

System.out.println("Enter User Name: ");
String userName = sc.next();

Random r = new Random();
int firstRoll = r.nextInt(6);
int secondRoll = r.nextInt(6);
firstRoll+= 1;
secondRoll+= 1;

int timesWin = 0;
int timesLose = 0;
int sumOfdice = firstRoll + secondRoll;

do
{
System.out.println("Die 1: "+ firstRoll);
System.out.println("Die 2: "+ secondRoll);
System.out.println("total: "+ sumOfdice);
if(sumOfdice == 4 || sumOfdice == 6 || sumOfdice == 8 || sumOfdice == 10)
{
System.out.println("Win");
timesWin++;
}
if(sumOfdice == 3 || sumOfdice == 5 || sumOfdice == 7 || sumOfdice == 9 || sumOfdice == 11)
{
System.out.println("Lose");
timesLose++;
}
else
{
System.out.println("Play Again");
}


} while(sumOfdice == 12 || sumOfdice ==2);

System.out.println("You won " + timesWin + "times");
System.out.println("You lost " + timesLose + "times");

}
}

我期望的是再次滚动应该只适用于骰子总和为 2 或 12 时,但我得到无限循环。如果您知道答案,请帮助我。

最佳答案

sumOfdice 应该在循环中被赋予一个新值在 else 语句中你应该重新掷骰子

...
else{
System.out.println("Play Again");
firstRoll = r.nextInt(6);
secondRoll = r.nextInt(6);
sumOfdice = firstRoll + secondRoll;
}
...

否则 while() 将循环遍历相同的值。

关于java - 随机掷2个骰子(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57969118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com