我目前正在使用Java的RNG Random r = new Random(),并在while循环中生成0到5之间的新整数.
while (someBoolean == false) {
int i = r.nextInt(6);
....
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是从范围中删除一个数字(例如,4),以便RNG仍然生成0到5之间的新数字,不包括其中一个值.
我目前最好的选择是:
while (someBoolean == false) {
int i = r.nextInt(6);
if (i == removedInt) { continue; }
....
}
Run Code Online (Sandbox Code Playgroud)
但是我担心这可能导致我的代码长时间运行,其中RNG不断返回我不想要的数字.
[ 为清楚起见; 返回的数字是Connect4网格或2D int数组中的列.该方法是随机地将列移动到列中,直到列填满为止,此时我不再希望能够在该列中播放.]
任何帮助赞赏:)