private void openAllBoard() { walkAt.clear(); for (Point cell : getCells()) { walkAt.put(cell, getMinesNear(cell)); } }
private boolean moveSapperAndFillFreeCell(Direction direction) { walkAt.put(sapper.copy(), getMinesNearSapper()); direction.change(sapper); boolean wasHere = walkAt.containsKey(sapper.copy()); return !wasHere; }
@Override public int minesNear(Point pt) { Integer count = walkAt.get(pt); if (count == null) { return -1; } return count; }
private void recalculateWalkMap() { for (Map.Entry<Point, Integer> entry : walkAt.entrySet()) { entry.setValue(getMinesNear(entry.getKey())); } }
@Override public boolean walkAt(Point pt) { return walkAt.containsKey(pt); }