Laberinto
Perfil de GitHub del autor de este proyecto:
En este repositorio queda resuelta la composición de un laberinto 5x5 con sus muros correspondientes y con su posterior resolución en Python. Para mayor claridad véase la foto que se muestra a continuación:
El diagrama de flujo empleado para resolver el ejercicio es el siguiente:
(Diagrama de flujo)
El código empleado para resolver el ejercicio es el siguiente:
# Creo la tupla del muro.
muro = (
(0, 1),
(0, 2),
(0, 3),
(0, 4),
(1, 1),
(2, 1),
(2, 3),
(3, 3),
(4, 0),
(4, 1),
(4, 2),
(4, 3),
)
def creacionlab(dimension, muros):
"""Ahora vamos a crear la función
que genera el laberinto.
Para ello incluyo 2 parámetros en la misma:
- La dimensión que es un integer.
- Los muros que es una lista formada por tuplas.
Buscamos que esta función genere el laberinto.
"""
# Creo una lista en la que se van a incluir las filas del laberinto.
lab = []
# Ahora vamos a crear el bucle que añade las filas anteriormente mencionadas.
for x in range(dimension):
fila = []
# El siguiente bucle va a "rellenar" las filas anteriormente generadas.
for y in range(dimension):
if tuple([x, y]) in muro:
# En caso de que la tupla aparezca en la lista de muros se añade una X en la misma.
fila.append("X")
else:
# En caso contrario se añadirá un espacio.
fila.append(" ")
lab.append(fila)
return lab
# En la parte donde se encuentra la dimensión sustituimos por el 5 ya que el laberinto dado es 5x5.
laberinto = creacionlab(5, muro)
""" El join() devuelve un string
uniendo todos los elementos
de una lista, tupla o string
con otro string que elijamos.
"""
for x in laberinto:
print("".join(x))