Mazes zijn een populair onderdeel van de cultuur is sindsdien ging Theseus het labyrint te doden den Minotaurus in de Griekse mythologie . Technologie is sindsdien aanzienlijk gevorderd , zoals computers zijn in staat om ogenblikkelijk genereren volstrekt willekeurige doolhoven met behulp van programmering software zoals Java . Terwijl een doolhof generatie script kunnen zijn miljoenen verschillende variabelen , elk doolhof generator nodig heeft om een aantal fundamentele eisen te hebben om succesvol te laten verlopen . Instructies 1 Maak het doolhof van de opening script : public class Maze { private int N ; private boolean [ ] [ ] noorden ; private boolean [ ] [ ] oosten ; private boolean [ ,"] [ ] zuiden ; private boolean [ ] [ ] westen ; private boolean [ ] [ ] bezocht; prive dubbele grootte ; private boolean gedaan = false; openbare Maze ( int N ) { this.N = N ; StdDraw.setXscale ( 0 , N +2 ) ; StdDraw.setYscale ( 0 , N +2 ) ; init ( ) ; genereren ( ) ; } kopen van 2 Opzetten van een failsafe dat het programma verhindert herzien cellen : private void init ( ) { //initialiseren grens cellen zoals reeds visitedvisited = new boolean [ N +2 ] [ N +2 ] ; for ( int x = 0 ; x < N 2 ; x + + ) een bezoek aan [ x ] [ 0 ] = bezocht [ x ] [ N +1 ] = true; for ( int y = 0 ; y < N 2 ; y + + ) bezocht [ 0 ] [ y ] = bezocht [ N +1 ] [ y ] = true ; 3 Opzetten van alle cellen in het doolhof als aanwezig ://initialiseren alle cellen als presentnorth = new boolean [ N +2 ] [ N +2 ] ; oosten = new boolean [ N +2 ] [ N +2 ] ; zuid = new boolean [ N +2 ] [ N +2 ] ; west = new boolean [ N +2 ] [ N +2 ] ; for ( int x = 0 ; x < , N +2 , x + + ) voor ( int y = 0 ; y < N 2 ; y + + ) noorden [ x ] [ y ] = oosten [ x ] [ y ] = zuiden [ x ] [ y ] = west [ x ] [ y ] = true; } 4 Include doolhof generatie regels code : private void genereren ( int x , int y ) { bezocht [ x ] [ y ] = true ; terwijl ( bezocht [ x ] [ y 1 ] | ! | ! bezocht [ x 1 ] [y ] | | ! bezocht [ x ] [ y - 1 ] | | ! bezocht [ x - 1 ] [ y] ) { while (true ) { double r = Math.random ( ) ; if ( r < 0,25 && bezocht [ x ] [ y 1 ] ) { noorden [ x ] [ y ] = zuiden [ x ] [ y 1 ] = false; genereren ( x , y + 1 ) break; ! } anders als ( r > = 0.25 && r < 0,50 && bezocht [ x 1 ] [ y ] ) { oosten [ x ] [ y ] = west [ x 1 ] [ y ] = false; genereren ( x 1 , y ) break; } else if ( r > = 0.5 & & r < 0,75 && bezocht [ x ] [ y - 1 ] ) { zuiden [ x ] [ y ] = noorden [ x ] [ y - 1 ] = false; ! genereren ( x , y -1 ) break; } else if ( ! r > = 0.75 && r < 1,00 && bezocht [ x - 1 ] [ y] ) { westen [ x ] [ y ] = oost [ x - 1 ] [ y ] = false; genereren ( x - 1 , y ) ; break; } } } } 5 Maak variabelen en de unieke regels code aan de basis Java- doolhof - creëren script , zoals personaliseren een lijn die willekeurig wist gedeelten van muren , creëert willekeurige gedeelten van muren , of zelfs een script dat inserts teleportatie wijst naar andere delen van het doolhof .
|