我正在尝试创建一个扫雷游戏,对于随机化部分,我遇到了一些麻烦。
对于一艘10×10格栅扫雷艇,我希望随机获得10枚或特定数量的炸弹/地雷,但我不知道如何做到这一点。
我有一个二维地雷阵列,如果它包含炸弹,它就会存储真地雷。
我知道在一维数组中,我可以将元素的总数分成n个相等的部分,然后每个部分有一个真正的布尔元素。
啊,但不一定要平均分配。我对清单也不是很确定,用一个列表来解决这个问题会不会是个好办法?
发布于 2016-04-02 10:36:36
final int GRID_WIDTH = 10;
final int GRID_HEIGHT = 10;
final int BOMB_NUMBER = 10;
final boolean[][] minesArray = new boolean[GRID_WIDTH][GRID_HEIGHT];
for (int i = 0; i < BOMB_NUMBER; i++) {
//Get random position for the next bomb
Random rand = new Random();
int row = rand.nextInt(GRID_WIDTH);
int col = rand.nextInt(GRID_HEIGHT);
while(minesArray[row][col]) { //if this position is a bomb
//we get new position
row = rand.nextInt(GRID_WIDTH);
col = rand.nextInt(GRID_HEIGHT);
}
minesArray[row][col] = true; //make new position is a bomb
}https://stackoverflow.com/questions/36371879
复制相似问题