MineSweeper CLI 2020 - Pt.1
This code establishes the core classes used to represent the data state of the game and some rudimentary display of that data.
The MineSweeper Pt.1 video lesson documents the writing of this code and explains its structure.
MineSweeper.java
package ceccs;
public class MineSweeper {
public static void main(String[] args){
Grid gameGrid = new Grid(6, 4);
gameGrid.tiles[2][3].isCovered = false;
gameGrid.tiles[3][1].isCovered = false;
gameGrid.tiles[1][2].isCovered = false;
gameGrid.tiles[1][2].isBomb = true;
gameGrid.printGrid();
}
}
Grid.java
package ceccs;
public class Grid {
int width, height;
Tile[][] tiles;
Grid(int w, int h){
width = w;
height = h;
tiles = new Tile[width][height];
for(int j = 0 ; j < height; j++){
for(int i = 0; i < width; i++){
tiles[i][j] = new Tile(i, j, false);
}
}
}
void printGrid(){
for(int j = 0; j < height; j++){
for (int i =0; i < width; i++){
if (tiles[i][j].isCovered) {
System.out.print(" =");
} else if (tiles[i][j].isBomb) {
System.out.print(" *");
} else {
System.out.print(" -");
}
}
System.out.print("\n");
}
}
}
Tile.java
package ceccs;
public class Tile {
boolean isCovered, isBomb, isFlagged;
int numAdjBombs, x, y;
Tile(){
isCovered = true;
isBomb = false;
isFlagged = false;
numAdjBombs = 0;
x = 0;
y = 0;
}
Tile(int xCoord, int yCoord, boolean bomb){
x = xCoord;
y = yCoord;
isBomb = bomb;
isCovered = true;
numAdjBombs = 0;
isFlagged = false;
}
}