private void recurseClick(int x, int y) {
		Square square = board.getSquare(x, y);

		if (square.isRevealed() || square.isFlagged() || square.isQuestioned()) return;
		//first click square
		square.setClicked();
		listener.squareRevealed(x, y, square.numMines());
		unclickedNonmines--;

		//then check if it has any adjacent mines. If it doesn't, recurse.
		if (square.numMines() == 0 && square.isRevealed()) {
			for (int i = x - 1; i <= x + 1; i++) {
				for (int j = y - 1; j <= y + 1; j++) {
					if (!board.positionExists(i, j)) continue;
					recurseClick(i, j);
				}
			}
		}
	}