Labyrinter har vært et populært innslag av kultur helt siden Theseus kom inn i labyrinten for å drepe Minotaur i gresk mytologi . Teknologi har avansert betraktelig siden da, som datamaskiner er i stand til å umiddelbart generere helt tilfeldige labyrinter ved hjelp programmering programvare, for eksempel Java. Mens en labyrint generasjon script kan omfatte millioner av forskjellige variabler , må hver labyrint generator for å ha noen grunnleggende krav for å kunne kjøres uten problemer. Instruksjoner
en
Lag labyrinten åpning script : en
public class Maze {private int N; private boolean [ ] [ ] nord, private boolean [ ] [ ] øst, private boolean [ ,"] [ ] sør, private boolean [ ] [ ] vest, private boolean [ ] [ ] besøkt , privat dobbel størrelse , private boolean ferdig = false;
offentlig Maze ( int N) { this.N = N; StdDraw.setXscale ( 0 , N 2 ), StdDraw.setYscale ( 0 , N 2 ), init (); generere (); }
2
etablere en failsafe som hindrer programmet fra revisiting celler: private void init ( ) { //initialisere grensen celler som allerede visitedvisited = new boolean [ N 2 ] [ N 2 ]; for ( int x = 0 ; x < N 2 ; x + + ) besøkt [ x ] [ 0 ] = besøkt [ x ] [ N 1 ] = true; for ( int y = 0; y < N 2 ; y + + ) besøkt [ 0 ] [y ] = besøkt [ N 1 ] [y ] = sant,
3
Etablere alle celler i labyrinten som er til stede ://initialisere alle celler som presentnorth = new boolean [ N 2 ] [ N 2 ] , øst = new boolean [ N 2 ] [ N 2 ] , sør = new boolean [ N 2 ] [ N 2 ]; vest = new boolean [ N 2 ] [ N 2 ]; for ( int x = 0 ; x < N 2 ; x + + ) for ( int y = 0; y < N 2 ; y + + ) nord [ x ] [y ] = øst [ x ] [y ] = sør [ x ] [y ] = vest [ x ] [y ] = true; }
4
Inkluder labyrint generasjon linjer med kode : private void genererer ( int x , int y ) { besøkt [ x ] [y ] = true;
< p> while ( besøkt [ x ] [ y 1 ]