def crear_laberinto(ancho, alto, inicio, fin, paredes):
laberinto = [['#' for _ in range(ancho)] for _ in range(alto)]
for r in range(alto):
for c in range(ancho):
if (r, c) not in paredes:
laberinto[r][c] = ' '
laberinto[inicio[0]][inicio[1]] = 'S'
laberinto[fin[0]][fin[1]] = 'E'
return laberinto
def mostrar_laberinto(laberinto):
for fila in laberinto:
print(''.join(fila))
def jugar_laberinto():
ancho = 15
alto = 10
inicio = (0, 1)
fin = (alto - 1, ancho - 2)
paredes = {
(1, 1), (1, 2), (1, 3), (1, 5), (1, 6), (1, 7), (1, 9), (1, 10), (1, 11),
(2, 1), (2, 7), (2, 11),
(3, 1), (3, 3), (3, 4), (3, 5), (3, 7), (3, 9), (3, 10), (3, 11),
(4, 3), (4, 7),
(5, 0), (5, 1), (5, 2), (5, 3), (5, 5), (5, 6), (5, 7), (5, 9), (5, 10), (5, 11),
(6, 5),
(7, 1), (7, 2), (7, 3), (7, 5), (7, 7), (7, 8), (7, 9), (7, 11),
(8, 7)
}
laberinto = crear_laberinto(ancho, alto, inicio, fin, paredes)
posicion_actual = list(inicio)
print("¡Bienvenido al Laberinto Textual!")
print("Usa 'w' (arriba), 's' (abajo), 'a' (izquierda), 'd' (derecha) para moverte.")
print("Intenta llegar a la 'E' (Salida) desde la 'S' (Inicio).")
mostrar_laberinto(laberinto)
while posicion_actual != list(fin):
movimiento = input("Introduce tu movimiento (w/a/s/d): ").lower()
nueva_posicion = list(posicion_actual)
if movimiento == 'w':
nueva_posicion[0] -= 1
elif movimiento == 's':
nueva_posicion[0] += 1
elif movimiento == 'a':
nueva_posicion[1] -= 1
elif movimiento == 'd':
nueva_posicion[1] += 1
else:
print("¡Movimiento inválido! Usa 'w', 'a', 's' o 'd'.")
continue
fila, col = nueva_posicion
if 0 <= fila < alto and 0 <= col < ancho and laberinto[fila][col] != '#':
laberinto[posicion_actual[0]][posicion_actual[1]] = ' '
posicion_actual = nueva_posicion
laberinto[posicion_actual[0]][posicion_actual[1]] = 'P'
mostrar_laberinto(laberinto)
elif laberinto[fila][col] == '#':
print("¡Te has topado con una pared!")
else:
print("¡Fuera de los límites del laberinto!")
if posicion_actual == list(fin):
print("¡Felicidades! ¡Has encontrado la salida!")
if __name__ == "__main__":
jugar_laberinto()