1

これは、乱数のセットを生成するために使用しているコードです。

...
        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+ がランダム クラスをサポートしていないか、私の実装で奇妙なことが起こっていると思われます。ただし、この方法は以前のバージョンでも問題なく機能するため、何が起こっているのかわかりません。

誰かがこれの代替実装に関する提案を持っている場合 (私は2rowsまたはの間でランダムな整数を生成する必要がありますcolumns)。

4

1 に答える 1

1

誰かがこれの代替実装に関する提案を持っている場合 (2 と行または列の間のランダムな整数を生成する必要があります)。

はい、非常に簡単に:

int randomRow = randomGen.nextInt(rows - 2) + 2;
int randomCol = randomGen.nextInt(columns - 2) + 2;
于 2013-02-19T23:12:05.610 に答える