2011-11-29 107 views
2

我想知道如果你可以使用Math.random方法來產生隨機0和1的?java填充2維數組與隨機0和1的

我需要填滿一個二維數組,使其基本上像一個迷宮,1是路徑,0是牆。

+2

迷宮不是隨機的。它們必須構建在有入口,出口和兩者之間的路徑上。隨機性不會讓你在那裏。 –

回答

2

迷宮隨機路徑不再是一個有效的迷宮!迷宮中的路徑是固定的,而不是隨機的,儘管它們似乎是!比方說,

enter image description here

上面一個是有效的迷宮,但一旦路徑是隨機的,它不再是一個有效的迷宮!(下)

enter image description here

這裏有一些maze generation codes的例子供您參考。

1

是的,你可以使用以下方法來生成隨機的0和1:

Random r = new Random(); 
int[][] maze = ... 
... 
maze[x][y] = r.nextInt(2); 
// or, equivalently, maze[x][y] = r.nextBoolean() ? 1 : 0; 

這是不太可能產生但是很好的迷宮。正如喬納森所說,迷宮的結構(即而不是完全隨機),你需要一個體面的迷宮構建算法。

1

像這樣的東西應該工作:

int n = 10; 
int[][] maze = new int[n][n]; 
Random rand = new Random(); 

for (int i = 0; i < n; i++) 
    for (int j = 0; j < n; j++) 
     maze[i][j] = rand.nextInt(2); 

雖然我的意見,不會給你不錯的迷宮同意...