示例#1
0
def un_transborde(viaje):
	for linea2 in viaje.ls2:
		l2 = datos.obtener_linea(linea2)
		for linea1 in viaje.ls1:
			l1 = datos.obtener_linea(linea1)
			for estacion in l2:
				if estacion[2] != None and linea1 in estacion[2]:
					viaje.time = tiempo.tiempo(viaje.e1, estacion[0], datos.obtener_linea(linea1))
					viaje.time = viaje.time + tiempo.tiempo(viaje.e2, estacion[0], l2)
					viaje.time = viaje.time + tiempo.tiempo_transborde(estacion[0])
					viaje.pasos.append([viaje.time, viaje.e1, linea1, estacion[0], linea2, viaje.e2])

	if len(viaje.pasos) >= 1:
		viaje.time, viaje.pasos = mejores_opciones(viaje.pasos)
		viaje.pasos = acomodar_opciones(viaje.pasos, 4)
		return True, viaje

	return False, viaje
示例#2
0
def misma_linea(viaje):
	for linea in viaje.ls1:
		if linea in viaje.ls2:
			l = datos.obtener_linea(linea)
			viaje.pasos = [viaje.e1, direccion(viaje.e1, viaje.e2, l), viaje.e2]
			viaje.time = tiempo.tiempo(viaje.e1, viaje.e2, l)
			return True, viaje

	return False, viaje
示例#3
0
def existe_transborde(linea1, linea2):
	l2 = datos.obtener_linea(linea2)
	for estacion in l2:
		if estacion[2] != None:
			if linea1 in estacion[2]:
				return estacion[0]
				
	#Checa si existe un transborde entre el punto final y el primer transborde
	#y revisa si es línea en comun con el punto inicial
	
	return None
示例#4
0
def dos_transbordes(viaje):
	lc = []
	posibles_transbordes = []

	for linea1 in viaje.ls1:
		l1 = datos.obtener_linea(linea1)
		for linea2 in viaje.ls2:
			l2 = datos.obtener_linea(linea2)
			lc = lineas_comunes(l1, l2)
			for lineacomun in lc:
				viaje.time = 0

				#Encuentra transborde1 y mide el tiempo entre e1 y transborde1
				transb_1 = existe_transborde(linea1, lineacomun)
				if transb_1 == viaje.e1:
					continue
				viaje.time += tiempo.tiempo(viaje.e1, transb_1, l1)
				viaje.time += tiempo.tiempo_transborde(transb_1)

				#Encuentra transborde2 y mide el tiempo entre transborde1 y transborde2
				transb_2 = existe_transborde(linea2, lineacomun)
				if transb_2 == transb_1 or transb_2 == viaje.e2:
					continue
				viaje.time += tiempo.tiempo(transb_1, transb_2, datos.obtener_linea(lineacomun))
				viaje.time += tiempo.tiempo_transborde(transb_2)

				#Mide el tiempo entre transborde2 y e2
				viaje.time += tiempo.tiempo(transb_2, viaje.e2, l2)

				#Agrega los recorridos a una lista de posibles transbordes
				viaje.pasos.append([viaje.time, viaje.e1, linea1, transb_1, lineacomun, transb_2, linea2, viaje.e2])

	if len(viaje.pasos) >= 1:
		viaje.time, viaje.pasos = mejores_opciones(viaje.pasos)
		#Cambia las lineas por las direcciones en el mejor recorrido
		viaje.pasos = acomodar_opciones(viaje.pasos, 6)
		return True, viaje
				
		
	return False, viaje
示例#5
0
def acomodar_opciones(opciones, n):
	for opcion in opciones:
		for i in range(1, n, 2):
			opcion[i] = direccion(opcion[i-1], opcion[i+1], datos.obtener_linea(opcion[i]))

	return opciones