40 lines
1.9 KiB
Plaintext
40 lines
1.9 KiB
Plaintext
|
|
Maze/Labyrinth raw format extension .raw
|
|
|
|
Model of labyrinth storing only paths not walls. wall are regenerated later on based on adjacent paths.
|
|
each position (x,y) stores what move can be done from here to go do deeper path.
|
|
a node is tagged OPEN and contained in openList if all moves from its position have not been resolved
|
|
a node is tagged CLOSED when fully processed
|
|
|
|
position is (x,y)
|
|
|
|
See org.artisanlogiciel.games.WallsProvider
|
|
|
|
file starts with
|
|
'LAB0'
|
|
32bits Width
|
|
32bits Height
|
|
|
|
Width * ( 16bits )
|
|
*
|
|
Height.
|
|
|
|
|
|
/** WARNING don't change those values, they are used as it is for optimisation */
|
|
private final static short FLAGLENGTH=7;
|
|
private final static short CLEAR=0; // mandatory 0 since array creation is initialized with 0.
|
|
private final static short HORIZONTAL=1;
|
|
private final static short VERTICAL=2;
|
|
private final static short DIRECTION=4; // could we get rid of that to free one bit for other purpose ?
|
|
private final static short POSITIVE=8;
|
|
private final static short NEGATIVE=16;
|
|
private final static short OPEN=32; // can be reused once generation is completed
|
|
private final static short CLOSED=64; // can be reused once generation is completed
|
|
private final static short LEFT=Brick.LEFT<<FLAGLENGTH|DIRECTION|HORIZONTAL|NEGATIVE;
|
|
private final static short DOWN=Brick.DOWN<<FLAGLENGTH|DIRECTION|VERTICAL|POSITIVE;
|
|
private final static short RIGHT=Brick.RIGHT<<FLAGLENGTH|DIRECTION|HORIZONTAL|POSITIVE;
|
|
private final static short UP=Brick.UP<<FLAGLENGTH|DIRECTION|VERTICAL|NEGATIVE;
|
|
private final static short ENTRY=Brick.ENTRY<<FLAGLENGTH; // flag when a wall should be open to access this.
|
|
private final static short GOAL=Brick.GOAL<<FLAGLENGTH; // flag when a wall should be open to access this.
|
|
private final static short SOLVED=64<<FLAGLENGTH; // flag when solution is on this path.
|
|
private final static short FREE=128<<FLAGLENGTH; // free flag |