2 Commits

Author SHA1 Message Date
kfkama 430ff09228 Add reveal cell function 3 years ago
kfkama c6c2328e4a Changed victory end to reset 3 years ago
  1. 6
      src/main/java/Minesweeper/Cell.java
  2. 17
      src/main/java/Minesweeper/Playfield.java

6
src/main/java/Minesweeper/Cell.java

@ -8,6 +8,7 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JOptionPane;
enum CellType {
Number, Bomb
@ -50,11 +51,14 @@ public class Cell extends JButton {
protected void OnMouseClick() {
if (!flagged) {
reveal();
if (type != CellType.Bomb) {
flood();
} else {
JOptionPane.showMessageDialog(getParent(),"KABOOM! Try again!");
playfield.reset();
}
}
}
@ -80,7 +84,7 @@ public class Cell extends JButton {
}
}
public void update() {
public void reveal() {
if (type == CellType.Number) {
setText(String.valueOf(value));
} else {

17
src/main/java/Minesweeper/Playfield.java

@ -1,5 +1,6 @@
package Minesweeper;
import java.awt.Color;
import java.awt.Point;
import javax.swing.JOptionPane;
@ -12,8 +13,7 @@ public class Playfield {
public Cell[][] cells;
private int bombAmount;
private int cellsFlooded = 0;
public Playfield(MinesweeperGame _MsG, int _Size, int _bombAmount) {
MsG = _MsG;
Size = _Size;
@ -44,11 +44,9 @@ public class Playfield {
cells[i][j].setBounds(j * CELLSIZE + (MsG.WIDTH / 2 - Size * CELLSIZE / 2),
i * CELLSIZE + (MsG.HEIGTH / 2 - Size * CELLSIZE / 2), CELLSIZE, CELLSIZE);
MsG.add(cells[i][j]);
for (int k = 0; k < bPlacement.length; k++) {
if (bPlacement[k] == i * Size + j) {
cells[i][j].type = CellType.Bomb;
cells[i][j].update();
break;
}
}
@ -62,10 +60,10 @@ public class Playfield {
}
}
}
MsG.repaint();
}
public void reset() {
JOptionPane.showMessageDialog(MsG,"KABOOM! Try again!");
cellsFlooded = 0;
for (int i = 0; i < Size; i++) {
for (int j = 0; j < Size; j++) {
@ -124,17 +122,16 @@ public class Playfield {
}
}
cells[row][column].update();
}
public void cellFlooded() {
cellsFlooded++;
if(cellsFlooded >= Size * Size - bombAmount) {
if (cellsFlooded >= Size * Size - bombAmount) {
JOptionPane.showMessageDialog(MsG, "You won, congratulations!");
System.exit(0);
reset();
}
}
public void cellDried() {
cellsFlooded--;
}
Loading…
Cancel
Save