minesweeper/src/main/java/org/apidesign/demo/minesweeper/MinesModel.java
branchminesweeper
changeset 66 9cf895cde4bd
parent 65 8e31706fc5da
child 68 d41833895448
     1.1 --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/MinesModel.java	Fri Feb 07 15:40:56 2014 +0100
     1.2 +++ b/minesweeper/src/main/java/org/apidesign/demo/minesweeper/MinesModel.java	Fri Feb 07 16:35:45 2014 +0100
     1.3 @@ -117,6 +117,7 @@
     1.4          List<Integer> xBombs = new ArrayList<Integer>();
     1.5          List<Integer> yBombs = new ArrayList<Integer>();
     1.6          final List<Row> rows = model.getRows();
     1.7 +        boolean emptyHidden = false;
     1.8          for (int y = 0; y < rows.size(); y++) {
     1.9              final List<Square> columns = rows.get(y).getColumns();
    1.10              for (int x = 0; x < columns.size(); x++) {
    1.11 @@ -127,6 +128,10 @@
    1.12                  }
    1.13                  if (sq.getState().isVisible()) {
    1.14                      sq.setState(SquareType.N_0);
    1.15 +                } else {
    1.16 +                    if (!sq.isMine()) {
    1.17 +                        emptyHidden = true;
    1.18 +                    }
    1.19                  }
    1.20              }
    1.21          }
    1.22 @@ -136,6 +141,10 @@
    1.23              
    1.24              incrementAround(model, x, y);
    1.25          }
    1.26 +        
    1.27 +        if (!emptyHidden) {
    1.28 +            model.setState(GameState.WON);
    1.29 +        }
    1.30      }
    1.31      
    1.32      private static void incrementAround(Mines model, int x, int y) {