minor changes (format + move class in stl package )
This commit is contained in:
40
documentation/rawformat
Normal file
40
documentation/rawformat
Normal file
@@ -0,0 +1,40 @@
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user