现在,我的变量全部随机滚动,但是只有一次。我怎样才能使它们在调用int时滚动一个新数字?当前所有统计信息均相同。一切都只能滚动一次。
int throwD4 = (int)(Math.random()*4+1);
int throwD6 = (int)(Math.random()*6+1);
int throwD8 = (int)(Math.random()*8+1);
int throwD10 = (int)(Math.random()*10+1);
int throwD12 = (int)(Math.random()*12+1);
int throwD20 = (int)(Math.random()*20+1);
int throwD100 = (int)(Math.random()*100+1);
int stat = (int)(throwD6 + throwD6 + throwD6);
String description = "A big strong dude with a cool longsword.";
String name = "Gladiator";
// stats
int STR = stat;
int DEX = stat;
int CON = stat;
int INT = stat;
int WIS = stat;
int CHA = stat;'
答案 0 :(得分:2)
是的,您一定会发现,如果您计算公式然后将其存储在变量中,则除非重新计算公式并将其再次存储在变量中,否则变量将保持其值。访问变量的值不会重新运行创建变量的公式。变量只是一个哑数,它不记得公式。除非您更改变量,否则变量不会更改,这一事实在程序的整个生命周期中非常方便。
考虑创建一个返回随机数的方法,每次您需要随机数时,请调用该方法:
public int throwDice(int howManySides){
return (int)(Math.random()*(howManySides+1));
}
如果您想了解有关如何使用它的更多建议,请向您的问题中添加一些有关当前使用方式的上下文,例如throwD6
从本质上讲,每当您考虑编写throwD6
时,都改写throwDice(6)
。例如:
//rolling a 6 kills the character
if(throwDice(6) == 6)
character.Kill();