one step beyond laby edition

allow to draw pathes before generation
still not working
This commit is contained in:
philippe lhardy
2017-12-02 17:33:35 +01:00
parent 77a06c0061
commit 378569bc8c
2 changed files with 59 additions and 49 deletions

View File

@@ -109,7 +109,8 @@ public class Display extends JFrame
if (params != null)
{
params = controler.getSettings().getParams();
model = new LabyModel(params, new java.util.Random());
// keep current model...
// model = new LabyModel(params, new java.util.Random());
maze.resetWallsProvider(model);
model.setMazeListener(maze);
@@ -669,7 +670,7 @@ public class Display extends JFrame
}
path=LabyModel.getDirection(last.getPosition(),newPosition);
last.setDirection(path);
map.setDirection(last.getPosition().getX(),last.getPosition().getY(),path);
map.addDirection(last.getPosition().getX(),last.getPosition().getY(),path);
}
last = new DirectionPosition((short) 0,newPosition);
System.out.println("Mouse dragged Cell " + newPosition);
@@ -973,40 +974,8 @@ public class Display extends JFrame
Display display = new Display(model, W,H,params);
}
public static void main(String pArgs[])
public static void save(MazeParamsFixed params,LabyModel model)
{
LabyModel model = null;
int W = 600;
int H = 400;
System.out.println("Default Locale " + Locale.getDefault());
if ( (pArgs.length > 0) && (pArgs[0].length() > 0))
{
try
{
model = new LabyModel("raw", new FileInputStream(pArgs[0]));
}
catch (IOException io)
{
io.printStackTrace(System.err);
System.exit(1);
}
setupDisplay(model, W,H,null);
}
else
{
MazeParamsFixed params = new MazeParamsFixed(new File("lab"),60,60,15);
model = new LabyModel(params, new java.util.Random());
setupDisplay(model,W,H,params);
model.generateWithEntry(0, 0);
model.addEntryOrExit(-1, 0);
model.addEntryOrExit(params.getWidth(), params.getHeight() - 1);
System.out.println("Generation completed");
File outfile = new File(params.getSaveDir(), params.getName() + ".raw");
if (!outfile.exists())
{
@@ -1049,6 +1018,47 @@ public class Display extends JFrame
{
System.out.println("" + outfile + " already exists");
}
}
public static void main(String pArgs[])
{
LabyModel model = null;
int W = 600;
int H = 400;
System.out.println("Default Locale " + Locale.getDefault());
if ( (pArgs.length > 0) && (pArgs[0].length() > 0))
{
try
{
model = new LabyModel("raw", new FileInputStream(pArgs[0]));
}
catch (IOException io)
{
io.printStackTrace(System.err);
System.exit(1);
}
setupDisplay(model, W,H,null);
}
else
{
MazeParamsFixed params = new MazeParamsFixed(new File("lab"),60,60,15);
model = new LabyModel(params, new java.util.Random());
setupDisplay(model,W,H,params);
/*
model.generateWithEntry(0, 0);
model.addEntryOrExit(-1, 0);
model.addEntryOrExit(params.getWidth(), params.getHeight() - 1);
System.out.println("Generation completed");
*/
/*
*/
}
}

View File

@@ -119,7 +119,7 @@ public class LabyModel implements WallsProvider
// FIXME FULLY BREAK RESOLVING...
public void noWalls(int x, int y)
{
if ((x > 0) && (x < width) && (y > 0) && (y < height))
if ((x >= 0) && (x < width) && (y >= 0) && (y < height))
{
// t[x][y] |= DIRECTION | VERTICAL | POSITIVE | HORIZONTAL | NEGATIVE | LEFT | RIGHT | UP | DOWN;
t[x][y] |= DIRECTION | VERTICAL | POSITIVE | HORIZONTAL | NEGATIVE;
@@ -131,9 +131,9 @@ public class LabyModel implements WallsProvider
// FIXME FULLY BREAK RESOLVING...
public void setDirection(int x, int y, short path)
{
if ((x > 0) && (x < width) && (y > 0) && (y < height))
if ((x >= 0) && (x < width) && (y >= 0) && (y < height))
{
t[x][y]= path;
t[x][y]= (short) (path | OPEN);
}
}
@@ -141,9 +141,9 @@ public class LabyModel implements WallsProvider
// FIXME FULLY BREAK RESOLVING...
public void addDirection(int x, int y, short path)
{
if ((x > 0) && (x < width) && (y > 0) && (y < height))
if ((x >= 0) && (x < width) && (y >= 0) && (y < height))
{
t[x][y]|= path;
t[x][y]|= (short) (path | OPEN);
}
}