class MineSquare { boolean isMine = false; /** * possible statuses: * 0 = unopened * 1 = marked * 2 = opened */ int status = 0; int neighbourMines = 0; public boolean setMine() { if (isMine) { return false; } else { isMine = true; return true; } } public void toggleMark() { if (status == 0) { status = 1; } else if (status == 1) { status = 0; } } public boolean open() { status = 2; return isMine; } @Override public String toString() { switch (status) { case 0: return "[ ]"; case 1: return "[M]"; case 2: return (isMine) ? "[X]" : String.format("[%d]", neighbourMines); default: return "[ ]"; } // return (isMine) ? "[X]" : String.format("[%d]", neighbourMines); } }