From afeafc1ec8e09827ac134b130a60048a8232c4d6 Mon Sep 17 00:00:00 2001 From: philippe lhardy Date: Thu, 23 Jun 2016 22:07:50 +0200 Subject: [PATCH] honor run option with a default maze of 30x30 default_args in project Display.main() if argument is empty ignore it if file read fails, exit add a WHEREWHAT file extract MazeParamEditor to share it, prepare for having a GUI instead of console --- WHEREWHAT | 12 ++++ java/org/artisanlogiciel/games/Display.java | 53 +---------------- java/org/artisanlogiciel/games/LabyModel.java | 2 +- java/org/artisanlogiciel/games/Main.java | 18 +++--- .../games/MazeParamEditor.java | 59 +++++++++++++++++++ .../org/artisanlogiciel/games/MazeParams.java | 2 +- project_params | 1 + 7 files changed, 87 insertions(+), 60 deletions(-) create mode 100644 WHEREWHAT create mode 100644 java/org/artisanlogiciel/games/MazeParamEditor.java diff --git a/WHEREWHAT b/WHEREWHAT new file mode 100644 index 0000000..772e23b --- /dev/null +++ b/WHEREWHAT @@ -0,0 +1,12 @@ + +java/ + +java sources + +java/org/artisanlogiciel/games + +java sources for package org.artisanlogiciel.games respect of java directory naming convention of files + +java/org/artisanlogiciel/games/Main.java + +Main Java entry point for this program \ No newline at end of file diff --git a/java/org/artisanlogiciel/games/Display.java b/java/org/artisanlogiciel/games/Display.java index b910726..ee87d70 100644 --- a/java/org/artisanlogiciel/games/Display.java +++ b/java/org/artisanlogiciel/games/Display.java @@ -83,56 +83,6 @@ public class Display extends JFrame maze.setWallSize(size); } - private static class MazeParamEditor implements MazeParams - { - int width; - int height; - int maxdepth; - File labdir; - String name; - - public MazeParamEditor(File saveDir) - { - name = null; - labdir = saveDir; - } - - public void read(Scanner console) - { - width = console.nextInt(); - height = console.nextInt(); - maxdepth = console.nextInt(); - } - - public int getWidth() - { - return width; - } - - public int getHeight() - { - return height; - } - - public int getMaxDepth() - { - return maxdepth; - } - - public String getName() - { - if (name == null) - { - name = "lab" + width + "x" + height; - } - return name; - } - - public File getSaveDir() - { - return labdir; - } - } private class MazeControler extends JPanel { @@ -520,7 +470,7 @@ public class Display extends JFrame int W = 600; int H = 400; - if (pArgs.length > 0) + if ( (pArgs.length > 0) && (pArgs[0].length() > 0)) { try { @@ -529,6 +479,7 @@ public class Display extends JFrame catch (IOException io) { io.printStackTrace(System.err); + System.exit(1); } int w = W / model.getWidth(); diff --git a/java/org/artisanlogiciel/games/LabyModel.java b/java/org/artisanlogiciel/games/LabyModel.java index 6805472..b74afde 100644 --- a/java/org/artisanlogiciel/games/LabyModel.java +++ b/java/org/artisanlogiciel/games/LabyModel.java @@ -14,7 +14,7 @@ import java.io.DataInputStream; /** * 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 + * from here to go to 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 **/ diff --git a/java/org/artisanlogiciel/games/Main.java b/java/org/artisanlogiciel/games/Main.java index 65ace64..0aa7afd 100644 --- a/java/org/artisanlogiciel/games/Main.java +++ b/java/org/artisanlogiciel/games/Main.java @@ -1,10 +1,18 @@ package org.artisanlogiciel.games; -import java.util.Scanner; import java.util.LinkedList; +import java.util.Scanner; public class Main { + public MazeParamEditor editor() + { + MazeParamEditor editor = new MazeParamEditor(null); + System.out.println("enter width height and maxdepth"); + Scanner console = new Scanner(System.in); + editor.read(console); + return editor; + } public WallsProvider generate(int width, int height, int maxdepth, MazeResolutionListener listener) { @@ -41,13 +49,9 @@ public class Main public static void main(String pArgs[]) { - System.out.println("enter width height and maxdepth"); - Scanner console = new Scanner(System.in); - int width = console.nextInt(); - int height = console.nextInt(); - int maxdepth = console.nextInt(); Main m = new Main(); - LabyMap map = m.generate2(width, height, maxdepth); + MazeParamEditor editor = m.editor(); + LabyMap map = m.generate2(editor.width, editor.height, editor.maxdepth); System.out.println(map.toShortString()); System.out.println(map.toString()); System.out.println(Brick.getDirLine()); diff --git a/java/org/artisanlogiciel/games/MazeParamEditor.java b/java/org/artisanlogiciel/games/MazeParamEditor.java new file mode 100644 index 0000000..664e1b2 --- /dev/null +++ b/java/org/artisanlogiciel/games/MazeParamEditor.java @@ -0,0 +1,59 @@ +package org.artisanlogiciel.games; + +import java.io.File; +import java.util.Scanner; + +/** + MazeParamEditor to edit Maze Parameters ( current impl in console / Scanner ) + **/ +class MazeParamEditor implements MazeParams +{ + int width; + int height; + int maxdepth; + File labdir; + String name; + + public MazeParamEditor(File saveDir) + { + name = null; + labdir = saveDir; + } + + public void read(Scanner console) + { + width = console.nextInt(); + height = console.nextInt(); + maxdepth = console.nextInt(); + } + + public int getWidth() + { + return width; + } + + public int getHeight() + { + return height; + } + + public int getMaxDepth() + { + return maxdepth; + } + + public String getName() + { + if (name == null) + { + name = "lab" + width + "x" + height; + } + return name; + } + + public File getSaveDir() + { + return labdir; + } +} + diff --git a/java/org/artisanlogiciel/games/MazeParams.java b/java/org/artisanlogiciel/games/MazeParams.java index dc0a17c..77f5753 100644 --- a/java/org/artisanlogiciel/games/MazeParams.java +++ b/java/org/artisanlogiciel/games/MazeParams.java @@ -3,7 +3,7 @@ package org.artisanlogiciel.games; import java.io.File; /** - * MazeParams was autogenerated by ./generate_newclass.sh + * MazeParams contains parameters for a Maze generation **/ public interface MazeParams { diff --git a/project_params b/project_params index 550f64a..e2f7144 100644 --- a/project_params +++ b/project_params @@ -4,3 +4,4 @@ project_basedir=$(pwd) project_mainpackage=org.artisanlogiciel.games project_mainclass=$project_mainpackage.Display project_version=0.0.1 +default_args='lab/lab30x30.raw'