diff --git a/.idea/artifacts/java_Minesweeper_jar.xml b/.idea/artifacts/java_Minesweeper_jar.xml deleted file mode 100644 index 9049cf3..0000000 --- a/.idea/artifacts/java_Minesweeper_jar.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - $PROJECT_DIR$/out/artifacts/java_Minesweeper_jar - - - - - \ No newline at end of file diff --git a/src/GameScreen.java b/src/GameScreen.java index b0caddb..3a187e1 100644 --- a/src/GameScreen.java +++ b/src/GameScreen.java @@ -1,6 +1,7 @@ import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.border.LineBorder; +import javax.swing.border.MatteBorder; import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage; @@ -35,7 +36,7 @@ public GameScreen(int sizeX, int sizeY, int bombDensity){ this.amtMoves = 0; try{ - imageMaster = ImageIO.read(new File("sprites/minesweeper_flag.png")); + imageMaster = ImageIO.read(new File("src/sprites/minesweeper_flag.png")); } catch(Exception e){ e.printStackTrace(); } @@ -78,7 +79,8 @@ public GameScreen(int sizeX, int sizeY, int bombDensity){ //currentButton.setIcon(new ImageIcon("green_button.png")); currentButton.setFont(new Font("Arial", Font.BOLD, bWidth / 4)); - currentButton.setBorder(new LineBorder(Color.BLACK, 0)); + //currentButton.setBorder(new LineBorder(Color.BLACK, 0)); + currentButton.setBorder(new MatteBorder(0,0,0,0,Color.BLACK)); currentButton.setForeground(Color.BLACK); currentButton.setBackground(Color.decode(grass_colours[((row + collumn) % 2)])); original_color = currentButton.getBackground(); @@ -188,6 +190,8 @@ public void checkForBombs(int pressedX, int pressedY, GameButton currentButton) currentNeighbour.setBombsAround(checkAmtBombsAround(currentNeighbour.getbX(), currentNeighbour.getbY(), 1)); + //this.changeBtnBorder(currentNeighbour, checkedNeighbours); + if(!currentNeighbour.isChecked() && !currentNeighbour.isBomb() && currentButton.getBombsAround() == 0 && !currentButton.isBomb()){ //currentButton.setBackground(Color.decode(grass_colours[((currentButton.getbX() + currentButton.getbY()) % 2) + 2])); @@ -196,17 +200,23 @@ public void checkForBombs(int pressedX, int pressedY, GameButton currentButton) // only checks the four neighbour tiles # up left down right if(currentNeighbour.getbX() == pressedX || currentNeighbour.getbY() == pressedY){ - currentNeighbour.setChecked(true); - this.checkForBombs(currentNeighbour.getbX(), currentNeighbour.getbY(), currentNeighbour); + + // only checks and pass check down if it is not flagged + if(!currentNeighbour.isFlagged()){ + currentNeighbour.setChecked(true); + this.checkForBombs(currentNeighbour.getbX(), currentNeighbour.getbY(), currentNeighbour); + } } } else{ - currentNeighbour.setChecked(true); + if(!currentNeighbour.isFlagged()){ + currentNeighbour.setChecked(true); - currentNeighbour.setBackground(Color.decode(grass_colours[((currentNeighbour.getbX() + currentNeighbour.getbY()) % 2) + 2])); - currentNeighbour.setForeground(Color.decode(font_colours[currentNeighbour.getBombsAround()])); - currentNeighbour.setIcon(null); + currentNeighbour.setBackground(Color.decode(grass_colours[((currentNeighbour.getbX() + currentNeighbour.getbY()) % 2) + 2])); + currentNeighbour.setForeground(Color.decode(font_colours[currentNeighbour.getBombsAround()])); + currentNeighbour.setIcon(null); - currentNeighbour.setText(String.format("%d", this.checkAmtBombsAround(checkedNeighbours.get(i).getbX(), checkedNeighbours.get(i).getbY(), 1))); + currentNeighbour.setText(String.format("%d", this.checkAmtBombsAround(checkedNeighbours.get(i).getbX(), checkedNeighbours.get(i).getbY(), 1))); + } } } @@ -260,7 +270,7 @@ public void showBomb(GameButton button){ currentButton.setBackground(Color.decode(font_colours[rng])); try{ - imageMaster = ImageIO.read(new File("sprites/bomb_icon.png")); + imageMaster = ImageIO.read(new File("src/sprites/bomb_icon.png")); } catch(Exception e){ e.printStackTrace(); } @@ -279,6 +289,28 @@ public void showAllBombs(){ } } + /* + public void changeBtnBorder(GameButton button, ArrayList neighbours){ + int up = 0; + int down = 0; + int left = 0; + int right = 0; + + for(int i = 0; i < neighbours.size(); i++){ +// if(!button.isChecked()){ +// if(button.getbX() == neighbours.get(i).getbX() || button.getbY() == neighbours.get(i).getbY()){ +// up = 1; +// } +// } + if(button.getbX() == neighbours.get(i).getbX() && button.getbY()+1 == neighbours.get(i).getbY()){ + up = 1; + } + } + + button.setBorder(new MatteBorder(up,0,0,0,Color.BLACK)); + } + */ + public ArrayList getNeighbours(int x, int y, int radius){ //int count = 0; ArrayList neighbours = new ArrayList<>(); diff --git a/sprites/bomb_icon.png b/src/sprites/bomb_icon.png similarity index 100% rename from sprites/bomb_icon.png rename to src/sprites/bomb_icon.png diff --git a/sprites/green_button.png b/src/sprites/green_button.png similarity index 100% rename from sprites/green_button.png rename to src/sprites/green_button.png diff --git a/sprites/minesweeper_flag.png b/src/sprites/minesweeper_flag.png similarity index 100% rename from sprites/minesweeper_flag.png rename to src/sprites/minesweeper_flag.png