80 lines
1.6 KiB
Python
80 lines
1.6 KiB
Python
def checksouth(x, y):
|
|
print('south')
|
|
if x < (len(ruum)-2):
|
|
if ruum[x+1][y] in ('|JL'):
|
|
return True
|
|
return False
|
|
|
|
|
|
def checknorth(x, y):
|
|
print('north')
|
|
if x > 0:
|
|
if ruum[x-1][y] in ('|7F'):
|
|
return True
|
|
return False
|
|
|
|
|
|
def checkwest(x, y):
|
|
print('west')
|
|
if y > 0:
|
|
if ruum[x][y-1] in ('-LF'):
|
|
return True
|
|
return False
|
|
|
|
|
|
def checkeast(x, y):
|
|
print('south')
|
|
if y < (len(ruum[x]) - 2):
|
|
if ruum[x][y+1] in ('-J7'):
|
|
return True
|
|
return False
|
|
|
|
|
|
def otsing(x, y, tase):
|
|
if ruum[x][y] == 'S':
|
|
checknorth(x, y)
|
|
checksouth(x, y)
|
|
checkwest(x, y)
|
|
checkeast(x, y)
|
|
if ruum[x][y] == "|":
|
|
checknorth(x, y)
|
|
checksouth(x, y)
|
|
if ruum[x][y] == "-":
|
|
checkeast(x, y)
|
|
checkwest(x, y)
|
|
if ruum[x][y] == "L":
|
|
checknorth(x, y)
|
|
checkeast(x, y)
|
|
if ruum[x][y] == "J":
|
|
checknorth(x, y)
|
|
checkwest(x, y)
|
|
if ruum[x][y] == "F":
|
|
checksouth(x, y)
|
|
checkwest(x, y)
|
|
if ruum[x][y] == "7":
|
|
checksouth(x, y)
|
|
checkwest(x, y)
|
|
|
|
|
|
with open("data.txt") as file:
|
|
lines = [line.rstrip() for line in file]
|
|
|
|
ruum = []
|
|
leitud = []
|
|
for line in lines:
|
|
ruum.append([*line])
|
|
leitud.append([*line])
|
|
|
|
print(ruum)
|
|
|
|
leitud = False
|
|
for x, rida in enumerate(ruum):
|
|
for y, koht in enumerate(rida):
|
|
print(f"x={x}, y={y}, koht={koht}")
|
|
if koht == 'S':
|
|
otsing(x, y, 0)
|
|
leitud = True
|
|
break
|
|
if leitud:
|
|
break
|