On valmis
This commit is contained in:
107
8/advent_2.py
107
8/advent_2.py
@@ -6,8 +6,8 @@ import re
|
|||||||
class RL:
|
class RL:
|
||||||
def __init__(self, L, R):
|
def __init__(self, L, R):
|
||||||
self.directions = {}
|
self.directions = {}
|
||||||
self.directions['R'] = R
|
self.directions["R"] = R
|
||||||
self.directions['L'] = L
|
self.directions["L"] = L
|
||||||
|
|
||||||
def get(self, direction):
|
def get(self, direction):
|
||||||
return self.directions[direction]
|
return self.directions[direction]
|
||||||
@@ -29,13 +29,13 @@ for line in lines:
|
|||||||
instructions = line
|
instructions = line
|
||||||
x += 1
|
x += 1
|
||||||
continue
|
continue
|
||||||
if line == '':
|
if line == "":
|
||||||
print('Tühi rida')
|
print("Tühi rida")
|
||||||
continue
|
continue
|
||||||
temp = re.findall(r'\w+', line)
|
temp = re.findall(r"\w+", line)
|
||||||
z = list(temp)
|
z = list(temp)
|
||||||
maps[z[0]] = RL(z[1], z[2])
|
maps[z[0]] = RL(z[1], z[2])
|
||||||
if z[0][2] == 'A':
|
if z[0][2] == "A":
|
||||||
print(f"Lisan alguse {z[0]}")
|
print(f"Lisan alguse {z[0]}")
|
||||||
algused.append(z[0])
|
algused.append(z[0])
|
||||||
|
|
||||||
@@ -45,24 +45,87 @@ print(algused)
|
|||||||
|
|
||||||
teemeveel = True
|
teemeveel = True
|
||||||
x = 0
|
x = 0
|
||||||
while teemeveel:
|
# while teemeveel:
|
||||||
|
# # print(f"Samm {instructions[x % len(instructions)]} {instructions} {x}")
|
||||||
|
# # if x % (len(instructions)*100) == 0:
|
||||||
|
# # print(x)
|
||||||
|
# for idx, vastus in enumerate(algused):
|
||||||
|
# # print(algused[idx])
|
||||||
|
# algused[idx] = maps[vastus].get(instructions[x % len(instructions)])
|
||||||
|
# # print(algused[idx])
|
||||||
|
|
||||||
|
# # print(f"Samm {x}")
|
||||||
|
# for i in algused:
|
||||||
|
# teemeveel = False
|
||||||
|
# # print(f"I on {i}")
|
||||||
|
# if i[2] != 'Z':
|
||||||
|
# # print('Edasi on vaja teha')
|
||||||
|
# teemeveel = True
|
||||||
|
# break
|
||||||
|
# # print(teemeveel)
|
||||||
|
|
||||||
|
# x += 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print(f"Juhiste pikkus on {len(instructions)}")
|
||||||
|
for vastus in algused:
|
||||||
|
alustasin = vastus
|
||||||
|
sammud = {}
|
||||||
|
kohad = {}
|
||||||
|
# for i in range(0,len(instructions)):
|
||||||
|
# sammud[i] = []
|
||||||
# print(f"Samm {instructions[x % len(instructions)]} {instructions} {x}")
|
# print(f"Samm {instructions[x % len(instructions)]} {instructions} {x}")
|
||||||
# if x % (len(instructions)*100) == 0:
|
# if x % (len(instructions)*100) == 0:
|
||||||
# print(x)
|
# print(x)
|
||||||
for idx, vastus in enumerate(algused):
|
#print(vastus)
|
||||||
# print(algused[idx])
|
#while vastus[2] != "Z":
|
||||||
algused[idx] = maps[vastus].get(instructions[x % len(instructions)])
|
# while vastus not in sammud[x % len(instructions)]:
|
||||||
# print(algused[idx])
|
# sammud[i].append(vastus)
|
||||||
|
# vastus = maps[vastus].get(instructions[x % len(instructions)])
|
||||||
|
# x += 1
|
||||||
|
# jargmine = maps[vastus].get(instructions[x % len(instructions)])
|
||||||
|
# print(f"{vastus} -> {jargmine}")
|
||||||
|
# print(x)
|
||||||
|
while vastus[2] != "Z":
|
||||||
|
#sammud[i].append(vastus)
|
||||||
|
vastus = maps[vastus].get(instructions[x % len(instructions)])
|
||||||
|
x += 1
|
||||||
|
print(f"alustasin {alustasin} {vastus}")
|
||||||
|
k1 = x
|
||||||
|
print(x)
|
||||||
|
x +=1
|
||||||
|
vastus = maps[vastus].get(instructions[x % len(instructions)])
|
||||||
|
while vastus[2] != "Z":
|
||||||
|
#sammud[i].append(vastus)
|
||||||
|
vastus = maps[vastus].get(instructions[x % len(instructions)])
|
||||||
|
x += 1
|
||||||
|
print(f"alustasin {alustasin} {vastus}")
|
||||||
|
k2 = x
|
||||||
|
print(x)
|
||||||
|
x +=1
|
||||||
|
vastus = maps[vastus].get(instructions[x % len(instructions)])
|
||||||
|
while vastus[2] != "Z":
|
||||||
|
#sammud[i].append(vastus)
|
||||||
|
vastus = maps[vastus].get(instructions[x % len(instructions)])
|
||||||
|
x += 1
|
||||||
|
|
||||||
# print(f"Samm {x}")
|
k3 = x
|
||||||
for i in algused:
|
x +=1
|
||||||
teemeveel = False
|
vastus = maps[vastus].get(instructions[x % len(instructions)])
|
||||||
# print(f"I on {i}")
|
|
||||||
if i[2] != 'Z':
|
|
||||||
# print('Edasi on vaja teha')
|
|
||||||
teemeveel = True
|
|
||||||
break
|
|
||||||
# print(teemeveel)
|
|
||||||
|
|
||||||
x += 1
|
while vastus[2] != "Z":
|
||||||
print(x)
|
#sammud[i].append(vastus)
|
||||||
|
vastus = maps[vastus].get(instructions[x % len(instructions)])
|
||||||
|
x += 1
|
||||||
|
|
||||||
|
|
||||||
|
print(f"alustasin {alustasin} {vastus}")
|
||||||
|
print(x)
|
||||||
|
k4 = x
|
||||||
|
|
||||||
|
print(f"{k2-k1} {k3-k2} {k4-k3}")
|
||||||
|
print("######")
|
||||||
|
# print(f"Samm {instructions[x % len(instructions)]} {instructions} {x}")
|
||||||
|
# if x % (len(instructions)*100) == 0:
|
||||||
|
# print(x)
|
||||||
|
|||||||
Reference in New Issue
Block a user