def _recreate_list_with_indices(indices1, values1, indices2, values2):
    """Create a list in the right order.

    :param list indices1: contains the list of indices corresponding to
    the values in values1.
    :param list values1: contains the first list of values.
    :param list indices2: contains the list of indices corresponding to
    the values in values2.
    :param list values2: contains the second list of values.

    :return: list of the values in the correct order.
    :rtype: list.
    """
    # Test if indices are continuous
    list_indices = sorted(indices1 + indices2)
    for i, index in enumerate(list_indices):
      if i != index:
        raise CraftAiInternalError("The agents's indices are not continuous")

    full_list = [None] * (len(indices1) + len(indices2))
    for i, index in enumerate(indices1):
      full_list[index] = values1[i]
    for i, index in enumerate(indices2):
      full_list[index] = values2[i]
    return full_list
Create a list in the right order.

    :param list indices1: contains the list of indices corresponding to
    the values in values1.
    :param list values1: contains the first list of values.
    :param list indices2: contains the list of indices corresponding to
    the values in values2.
    :param list values2: contains the second list of values.

    :return: list of the values in the correct order.
    :rtype: list.