107 lines
1.8 KiB
Java
107 lines
1.8 KiB
Java
package org.artisanlogiciel.games;
|
|
|
|
import java.util.LinkedList;
|
|
|
|
class LabyMap
|
|
implements WallsProvider
|
|
{
|
|
|
|
Brick[][] tileMap;
|
|
LinkedList<Position> exits = new LinkedList<Position>();
|
|
|
|
public LabyMap(Brick[][] tileMap, LinkedList<Position> exits)
|
|
{
|
|
this.tileMap = tileMap;
|
|
this.exits = exits;
|
|
}
|
|
|
|
Brick getAt(int x, int y)
|
|
{
|
|
return tileMap[x][y];
|
|
}
|
|
|
|
public short getWalls(int x, int y)
|
|
{
|
|
return getAt(x,y).getWalls();
|
|
}
|
|
|
|
public int getWidth()
|
|
{
|
|
return tileMap[0].length;
|
|
}
|
|
|
|
public int getHeight()
|
|
{
|
|
return tileMap.length;
|
|
}
|
|
|
|
public String toString()
|
|
{
|
|
int entryX = -1;
|
|
int entryY = -1;
|
|
for ( Position exit: exits )
|
|
{
|
|
if ( exit.getX() == -1 )
|
|
{
|
|
entryY = exit.getY();
|
|
}
|
|
if ( exit.getY() == -1 )
|
|
{
|
|
entryX= exit.getX();
|
|
}
|
|
}
|
|
String laby="H";
|
|
for ( int x=0; x < tileMap.length; x ++) {
|
|
if ( entryX == x ) { laby += " H" ; }
|
|
else { laby+="HH";}
|
|
}
|
|
laby+="\n";
|
|
for ( int y=0; y < tileMap[0].length; y++)
|
|
{
|
|
if ( entryY == y ) { laby += ">";}
|
|
else { laby += "H"; }
|
|
for ( int x=0; x < tileMap.length; x ++)
|
|
{
|
|
laby+= tileMap[x][y].getUpString();
|
|
}
|
|
laby+="\n";
|
|
laby += "H";
|
|
for ( int x=0; x < tileMap.length; x ++)
|
|
{
|
|
laby+= tileMap[x][y].getLowString();
|
|
}
|
|
laby+="\n";
|
|
}
|
|
return laby;
|
|
}
|
|
|
|
|
|
public String toShortString()
|
|
{
|
|
int entryX = -1;
|
|
int entryY = -1;
|
|
for ( Position exit: exits )
|
|
{
|
|
if ( exit.getX() == -1 )
|
|
{
|
|
entryY = exit.getY();
|
|
}
|
|
if ( exit.getY() == -1 )
|
|
{
|
|
entryX= exit.getX();
|
|
}
|
|
}
|
|
String laby="";
|
|
for ( int y=0; y < tileMap[0].length; y++)
|
|
{
|
|
for ( int x=0; x < tileMap.length; x ++)
|
|
{
|
|
laby+= "" + tileMap[x][y].getChar();
|
|
}
|
|
laby+="\n";
|
|
}
|
|
return laby;
|
|
}
|
|
|
|
}
|