51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
part_sum = 0
|
|
matrix = []
|
|
|
|
# read matrix like day 3
|
|
input_file = open("input", "r")
|
|
for line in input_file:
|
|
matrix.append(line.strip())
|
|
input_file.close()
|
|
|
|
zeilen = len(matrix)
|
|
spalten = len(matrix[0])
|
|
|
|
# Ausgabe Matrix und Startposition finden
|
|
for i in range(len(matrix)):
|
|
if "S" in matrix[i]:
|
|
zs = i
|
|
print(matrix[i])
|
|
for j in range(len(matrix[zs])):
|
|
if "S" in matrix[zs][j]:
|
|
ss = j
|
|
print()
|
|
print(f"Startposition: {zs}, {ss}")
|
|
|
|
#
|
|
def where_to_go(z, s, prev):
|
|
try:
|
|
if [z, s] != prev and (matrix[z-1][s] == "F" or matrix[z-1][s] == "7" or matrix[z-1][s] == "|"):
|
|
return z-1, s
|
|
except IndexError:
|
|
pass
|
|
try:
|
|
if [z, s] != prev and (matrix[z+1][s] == "L" or matrix[z+1][s] == "J" or matrix[z-1][s] == "|"):
|
|
return z+1, s
|
|
except IndexError:
|
|
pass
|
|
try:
|
|
if [z, s] != prev and (matrix[z][s+1] == "J" or matrix[z][s+1] == "7"):
|
|
return z, s+1
|
|
except IndexError:
|
|
pass
|
|
try:
|
|
if [z, s] != prev and (matrix[z][s-1] == "F" or matrix[z][s-1] == "L"):
|
|
return z, s-1
|
|
except IndexError:
|
|
pass
|
|
|
|
print(where_to_go(1,1,[]))
|