我有一个程序用于使用递归的 RNG 解决捆绑的掷骰子问题,并且可能导致所讨论的变量超过正常整数变量的最大允许值。
这会导致错误吗?它会导致我的程序崩溃吗?
这是代码:
//这是有问题的方法。每次调用它时,它都会将每个滚动的先前//结果乘以 100,并使用 RNG 添加 20 面骰子的结果
public void reRoll(){
for(int i = 0; i < playerlist.size(); i++){
playerlist.get(i).initroll = (playerlist.get(i).initroll*100) + Dice.d20();
}
}
//这是对该方法的递归调用。如果它接收到太多的关系,例如当它//被使用数百万次时,它将导致整数值扩展超出其初始//边界,从而可能导致错误
public void resolveTies(){
while(checkTies() == true){
reset();
reRoll();
compareGroup();
}
}
请记住,此代码尚未经过全面测试,这是我第一次尝试与外人交谈(自学),所以我希望我所说的有道理。