public int getNeighbourIndex(final Direction direction, final Cell cell, final Player player) {
		switch (direction) {
		case TOP:
			return verticalMoveChecker.getTopNeighbourIndex(cell, player);
		case BOTTOM:
			return verticalMoveChecker.getBottomNeighbourIndex(cell, player);
		case LEFT:
			return horizontalMoveChecker.getLeftNeighbourIndex(cell, player);
		case RIGHT:
			return horizontalMoveChecker.getRightNeighbourIndex(cell, player);
		case MAIN_DIAGONAL_BOTTOM:
			return mainDiagonalMoveChecker.getBottomNeighbourIndex(cell, player);
		case MAIN_DIAGONAL_TOP:
			return mainDiagonalMoveChecker.getTopNeighbourIndex(cell, player);
		case SECONDARY_DIAGONAL_BOTTOM:
			return secondaryDiagonalMoveChecker.getBottomNeighbourIndex(cell, player);
		case SECONDARY_DIAGONAL_TOP:
			return secondaryDiagonalMoveChecker.getTopNeighbourIndex(cell, player);
		default:
			return -1;
		}
	}