diff --git a/8/advent_2.py b/8/advent_2.py index e44533b..e8bee75 100644 --- a/8/advent_2.py +++ b/8/advent_2.py @@ -6,8 +6,8 @@ import re class RL: def __init__(self, L, R): self.directions = {} - self.directions['R'] = R - self.directions['L'] = L + self.directions["R"] = R + self.directions["L"] = L def get(self, direction): return self.directions[direction] @@ -29,13 +29,13 @@ for line in lines: instructions = line x += 1 continue - if line == '': - print('Tühi rida') + if line == "": + print("Tühi rida") continue - temp = re.findall(r'\w+', line) + temp = re.findall(r"\w+", line) z = list(temp) maps[z[0]] = RL(z[1], z[2]) - if z[0][2] == 'A': + if z[0][2] == "A": print(f"Lisan alguse {z[0]}") algused.append(z[0]) @@ -45,24 +45,87 @@ print(algused) teemeveel = True 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}") # 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(vastus) + #while vastus[2] != "Z": + # while vastus not in sammud[x % len(instructions)]: + # 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}") - 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) + k3 = x + x +=1 + vastus = maps[vastus].get(instructions[x % len(instructions)]) - x += 1 -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}") + 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)