Labyrinter har varit ett populärt inslag i kultur ända sedan Theseus kom in i labyrinten för att dräpa Minotauren i den grekiska mytologin . Tekniken har avancerat avsevärt sedan dess , eftersom datorer har möjlighet att omedelbart generera helt slumpmässiga labyrinter med programmering programvara som Java . Medan en labyrint generation skript kan innehålla miljontals olika variabler , måste varje labyrint generator för att ha några grundläggande krav för att kunna köras . Instruktioner
1
Skapa labyrinten öppning manus :
public class Maze { private int N , private boolean [ ] [ ] N; privat boolean [ ] [ ] east , private boolean [ ,"] [ ] söderut , private boolean [ ] [ ] V; private boolean [ ] [ ] besökt , privata dubbel storlek , privat boolean gjort = false;
Maze
allmänheten ( int n ) { this.N = N ; StdDraw.setXscale ( 0 , N +2 ) , StdDraw.setYscale ( 0 , N +2 ) , init ( ) , genererar ( ) ;}
2
Etablera en felsäker som hindrar programmet från återbesök celler : private void init ( ) { //initiera gränsöverskridande celler som redan visitedvisited = new Boolean [ n +2] [ n +2] , for (int x = 0 , x < N +2 , x + + ) besökte [ x ] [ 0 ] = besökte [ x ] [ N +1 ] = true ; for (int y = 0; y < N +2 , y + + ) besökte [ 0 ] [ y ] = besökte [ N +1 ] [ y ] = true ; Addera 3
etablera alla celler i labyrinten som närvarande ://initiera alla celler som presentnorth = new Boolean [ n +2] [ n +2 ] , east = new boolean [ n +2] [ n +2 ] , syd = new Boolean [ n +2] [ n +2 ] , väst = new Boolean [ n +2] [ n +2] , for (int x = 0 , x < , N +2 , x + + ) för ( int y = 0; y < N +2 , y + + ) norr [ x ] [ y ] = öst [ x ] [ y ] = söder [ x ] [ y ] = west [ x ] [ y ] = true ; }
4
Inkludera linjer labyrint generation kod : private void genererar ( int x , int y ) { besökt [ x ] [ y ] = true ;
tag ( besökt [ x ] [ y +1 ]