int randRow = rand.nextInt(rows-4);
int randColumn = rand.nextInt(columns); 我在这里检查我的新船是否会干扰我的第一艘船。整个数组都填充了包含'.‘的对象。除第一艘船所在的地方外
if(field[randRow][randColumn].value == '.' &&
field[randRow][randColumn+1].value == '.' &&
field[randRow][randColumn+2].value == '.' &&
field[randRow][randColumn+3].value == '.'){
field[randRow][randColumn] = new Square('b');
field[randRow+1][randColumn] = new Square('b');
field[randRow+2][randColumn] = new Square('b');
field[randRow+3][randColumn] = new Square('b');
} else{如果我的新船不适合,我想重试不同的随机值,但我不知道如何。
发布于 2016-01-01 15:44:44
基本上,您不知道如何再次生成随机数。只需使用下面这样的东西
while(true) {
//generate random number here
if (can place battleship) {
place battleship
break //placed battleship so no need to retry. stop retrying
}
//else we will loop till we can place the battleship
}https://stackoverflow.com/questions/34557511
复制相似问题