Prechádzať zdrojové kódy

Merge branch 'master' of git@tankernn.eu:mines.git

Conflicts:
	src/main/java/eu/tankernn/mines/Mines.java
	src/main/java/eu/tankernn/mines/SettingsEditor.java
Tankernn 8 rokov pred
rodič
commit
c7e60dfb69

+ 9 - 1
src/main/java/eu/tankernn/mines/Mines.java

@@ -31,7 +31,8 @@ public class Mines extends TankernnGame {
 	public static final String GAME_NAME = "Minesweeper";
 	public static final Pos[] DEFAULT_PATTERN = { new Pos(0, 1), new Pos(0, -1), new Pos(1, 0), new Pos(1, 1),
 			new Pos(1, -1), new Pos(-1, 0), new Pos(-1, -1), new Pos(-1, 1) };
-	public static Settings DEFAULT_SETTINGS = new Settings(Arrays.asList(DEFAULT_PATTERN), 9, 9, 10);
+	public static final Settings DEFAULT_SETTINGS = new Settings(Arrays.asList(DEFAULT_PATTERN), 9, 9, 10);
+	public static final boolean DEBUG = false;
 
 	// Utility
 	private DecimalFormat format = new DecimalFormat("0.000 sec");
@@ -210,6 +211,7 @@ public class Mines extends TankernnGame {
 			Vector2f scale = new Vector2f(1f / settings.boardWidth, 1f / settings.boardHeight);
 			toRender.add(new GuiTexture(tex,
 					new Vector2f(2 * scale.x * t.pos.x + scale.x - 1, 2 * scale.y * t.pos.y + scale.y - 1), scale));
+
 		}
 
 		renderer.render(toRender);
@@ -221,6 +223,8 @@ public class Mines extends TankernnGame {
 	@Override
 	public void cleanUp() {
 		super.cleanUp();
+		if (editor != null)
+			editor.dispose();
 	}
 
 	public static Stream<Pos> allPositions(int width, int height) {
@@ -246,4 +250,8 @@ public class Mines extends TankernnGame {
 		GameLauncher.init(GAME_NAME, 800, 800);
 		GameLauncher.launch(new Mines(GAME_NAME));
 	}
+
+	public Settings getSettings() {
+		return settings;
+	}
 }

+ 12 - 1
src/main/java/eu/tankernn/mines/SettingsEditor.java

@@ -20,6 +20,7 @@ public class SettingsEditor extends JFrame {
 	private int radius = 3, size = radius * 2 + 1;
 	private Mines gameInstance;
 	private JSpinner minesSpinner = new JSpinner(), sizeSpinner = new JSpinner();
+	JCheckBox[][] boxes;
 
 	/**
 	 * Create the frame.
@@ -43,7 +44,7 @@ public class SettingsEditor extends JFrame {
 		JPanel grid = new JPanel();
 		grid.setLayout(new GridLayout(size, size));
 
-		JCheckBox[][] boxes = new JCheckBox[size][size];
+		boxes = new JCheckBox[size][size];
 
 		for (int x = 0; x < boxes.length; x++) {
 			for (int y = 0; y < boxes[x].length; y++) {
@@ -53,6 +54,8 @@ public class SettingsEditor extends JFrame {
 			}
 		}
 
+		importSettings(instance.getSettings());
+
 		boxes[radius][radius].setEnabled(false);
 
 		JButton save = new JButton("Save");
@@ -76,4 +79,12 @@ public class SettingsEditor extends JFrame {
 		setVisible(true);
 		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 	}
+
+	private void importSettings(Settings settings) {
+		sizeSpinner.setValue((int) Math.sqrt(settings.area));
+		minesSpinner.setValue(settings.mines);
+
+		for (Pos pos : settings.pattern)
+			boxes[pos.x + radius][pos.y + radius].setSelected(true);
+	}
 }