MineSweeper Progress
Near Term Objectives
Improve Print Method
- Add Row and Column Labels to Print
- Add boarder lines separating labels
- Ensure Labels align for 10+ numbering
- Ensure grid is aligned for all symbols
Create Grid.uncoverAll() method
Create Grid.makeTestField()
- Create a map with at least one of each adjacency (0-8) on paper
- This method should place the mines but NOT set adjacency numbers
Create and Test Grid.calcAdjNums()
- use the test field to ensure the method works correctly
Mine Field Randomization - Grid.makeRandomMinefield(int numMines, int firstX, int firstY)
- Create a method in Grid that places exactly the number of mines specified by numMines
.
- Have the method avoid the 9 tiles centered on (firstX, firstY).
'smart' Tile Selection Method - Grid.select(int x, int y)
- First the method should uncover a tile specified by (x,y).
- If the tile has 0 adjacent mines, all surrounding tiles should be automatically selected.
- All automatically selected tiles with 0 adjacent mines should also automatically select all surrouneding tiles.
- Use Recursion to implement autoselect. If you encounter a StackOverflow then the recursion is stuck in an infinite loop.