private int getConnectedPieces(int row, int col, int player,
			boolean[][] checked) {
		// This position row col does not contain a connected piece if
		if (row < 0 || row > SIZE - 1 // Outside board boundaries
				|| col < 0 || col > SIZE - 1 // Outside board boundaries
				|| board[row][col].isEmpty() // No Piece at the given position
				|| board[row][col].getPlayer() != player // Piece at postion
															// belongs to
															// opponent
				|| checked[row][col]) { // Position was previously checked
			return 0;
		}
		checked[row][col] = true;
		// Check adjacent Positions (recursive call)
		return 1 + getConnectedPieces(row - 1, col, player, checked)
				+ getConnectedPieces(row - 1, col + 1, player, checked)
				+ getConnectedPieces(row, col + 1, player, checked)
				+ getConnectedPieces(row + 1, col + 1, player, checked)
				+ getConnectedPieces(row + 1, col, player, checked)
				+ getConnectedPieces(row + 1, col - 1, player, checked)
				+ getConnectedPieces(row, col - 1, player, checked)
				+ getConnectedPieces(row - 1, col - 1, player, checked);
	}