我试图使用Scanner在java中制作一个简单的程序,允许用户射击骰子(玩骰子)。
1.这段代码要求用户输入他们有多少钱。
我已经成功地告诉计算机,当他们赢或输,当他们滚动2,3,7,11或12时,通知他们。
我不知道当其他随机值(如4、5、6、8、9和10 )被滚动时,如何告诉计算机允许用户继续滚动骰子,请帮助。这是我的密码:
System.out.println("How much is in your purse?: ");
purse = input.nextInt();
System.out.println("make a bet: ");
bet = input.nextInt();
int pNumber = rand.nextInt(12) + 1;
if (pNumber == 2 || pNumber == 3 || pNumber == 12)
{
purse = purse - bet;
System.out.println("you rolled a " + pNumber);
System.out.println("you lost $" + bet);
}
else if (pNumber == 7 || pNumber == 11)
{
purse = purse + bet;
System.out.println("you rolled a " + pNumber);
System.out.println("you won $" + bet );
}
else
{
System.out.println("you rolled a " + pNumber + ",keep rolling" );
}发布于 2016-10-08 22:41:47
使用一个外部的时间循环,以保持游戏的运行,直到用户用完钱。
就像这样。从钱包中的初始数量开始,然后开始游戏。
如果用户赢或输,他们做一个新的赌注,并再次滚动。
如果用户既不赢也不输,他们就会再次使用当前的赌注。
System.out.println("How much is in your purse?: ");
purse = input.nextInt();
boolean newBet = true;
while(purse > 0)
{
if(newBet)
{
System.out.println("make a bet: ");
bet = input.nextInt();
}
//roll the dice, new bet or not
int pNumber = rand.nextInt(12) + 1;
if ( pNumber == 2 || pNumber == 3 || pNumber == 12)
{
purse = purse - bet;
System.out.println("you rolled a " + pNumber);
System.out.println("you lost $" + bet);
newBet =true; //make a new bet if you won
}
else if (pNumber == 7 || pNumber == 11)
{
purse = purse + bet;
System.out.println("you rolled a " + pNumber);
System.out.println("you won $" + bet );
newBet=true; //make a new bet if you lost
}
else
{
System.out.println("you rolled a " + pNumber + ",keep rolling" );
newBet=false; // make no new bet, neither won nor lost
}
} //end while
System.out.println("Game over !")如果用户希望在资金用完之前退出,您可以添加条件以脱离while循环,等等。
发布于 2016-10-08 22:45:46
键,如果你想继续滚动特定的数字,把你所有的代码放在一个时间循环或做同时循环。
发布于 2016-10-08 22:54:31
下面是一个简单的简单算法,可以帮助描绘实际代码:
在一种方法中,调用它,使用随机数生成器来模拟用户的滚动
如果用户的名册不等于4,5,6,8,9或10,根据您的解释,这是有问题的数字,请继续计算
否则,如果用户确实注册了一个错误的号码,则对roll方法进行递归调用。这将生成另一个随机滚动,并再次通过检查,直到生成“可接受的”卷。
还不确定是否知道递归,但基本上,它是一个调用自己的方法。
https://stackoverflow.com/questions/39937994
复制相似问题