pooleli
This commit is contained in:
68
8/advent_2.py
Normal file
68
8/advent_2.py
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
#!/usr/bin/env python3.12
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
class RL:
|
||||||
|
def __init__(self, L, R):
|
||||||
|
self.directions = {}
|
||||||
|
self.directions['R'] = R
|
||||||
|
self.directions['L'] = L
|
||||||
|
|
||||||
|
def get(self, direction):
|
||||||
|
return self.directions[direction]
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f"L: {self.get('L')} R: {self.get('R')}"
|
||||||
|
|
||||||
|
|
||||||
|
with open("data2.txt") as file:
|
||||||
|
lines = [line.rstrip() for line in file]
|
||||||
|
|
||||||
|
|
||||||
|
x = 0
|
||||||
|
maps = {}
|
||||||
|
algused = []
|
||||||
|
for line in lines:
|
||||||
|
print(line)
|
||||||
|
if x == 0:
|
||||||
|
instructions = line
|
||||||
|
x += 1
|
||||||
|
continue
|
||||||
|
if line == '':
|
||||||
|
print('Tühi rida')
|
||||||
|
continue
|
||||||
|
temp = re.findall(r'\w+', line)
|
||||||
|
z = list(temp)
|
||||||
|
maps[z[0]] = RL(z[1], z[2])
|
||||||
|
if z[0][2] == 'A':
|
||||||
|
print(f"Lisan alguse {z[0]}")
|
||||||
|
algused.append(z[0])
|
||||||
|
|
||||||
|
print(instructions)
|
||||||
|
print(algused)
|
||||||
|
|
||||||
|
|
||||||
|
teemeveel = True
|
||||||
|
x = 0
|
||||||
|
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(x)
|
||||||
Reference in New Issue
Block a user