这是我用来生成随机数字集的代码:

...
        public boolean placeTreasure()  {
            randomGen = new Random();
            int[] treasureLoc = {0, 0};

            while (treasureLoc[0] < 2 || treasureLoc[1] < 2)    {
                treasureLoc[0] = randomGen.nextInt(rows - 2);
                treasureLoc[1] = randomGen.nextInt(columns - 2);
                System.out.println("" + treasureLoc[0] + ", " + treasureLoc[1]);
            }
            maze[treasureLoc[0]][treasureLoc[1]] = '*';

            return true;
        }
...


有趣的是,它在早期版本的Android上运行正常。据我所知,任何高于4.1的版本都无法正常运行。它不断给我成对的0, 0。这使我相信4.1+不支持随机类,或者我的实现中发生了其他奇怪的事情。不过,此方法在较早的版本上效果很好,因此我不确定发生了什么。

如果有人对此有其他实现的建议(我需要在2rowscolumns之间生成随机整数)。

最佳答案

如果有人对此有其他实现的建议(我需要在2和行或列之间生成随机整数)。


是的,非常简单:

int randomRow = randomGen.nextInt(rows - 2) + 2;
int randomCol = randomGen.nextInt(columns - 2) + 2;

07-26 09:31