Files
Advent2023/3/advent_1.py

98 lines
2.6 KiB
Python
Raw Normal View History

2023-12-03 18:43:46 +02:00
#!/usr/bin/env python3
from dataclasses import dataclass
@dataclass
class Point:
line: int
pos: int
def kasonsymbol(x):
print(x, end="")
if x.isdigit():
return False
if x == ".":
return False
return True
def vaatakast(algus, lopp, andmed):
print("Vaatame kasti")
retval = False
if algus.line > 0:
if algus.pos > 0:
if kasonsymbol(andmed[algus.line - 1][algus.pos - 1]):
retval = True
for i in range(algus.pos, lopp.pos):
if kasonsymbol(andmed[algus.line - 1][i]):
retval = True
if lopp.pos < (len(andmed[algus.line]) - 2):
if kasonsymbol(andmed[algus.line - 1][lopp.pos]):
retval = True
print()
if algus.pos > 0:
if kasonsymbol(andmed[algus.line][algus.pos - 1]):
retval = True
for u in range(algus.pos, lopp.pos):
print("-", end="")
if lopp.pos < (len(andmed[algus.line]) - 2):
if kasonsymbol(andmed[algus.line][lopp.pos]):
retval = True
print()
if algus.line < len(andmed) - 2:
if algus.pos > 0:
if kasonsymbol(andmed[algus.line + 1][algus.pos - 1]):
retval = True
for i in range(algus.pos, lopp.pos):
if kasonsymbol(andmed[algus.line + 1][i]):
retval = True
if lopp.pos < (len(andmed[algus.line]) - 2):
if kasonsymbol(andmed[algus.line + 1][lopp.pos]):
retval = True
print()
if retval:
print("Kast kinni")
else:
print("Kast lahti")
return retval
with open("/home/jesmin/wrk/aoc/3/data.txt") as file:
lines = [line.rstrip() for line in file]
linecount = len(lines)
x = 0
y = 0
kogunumber = 0
for y in range(0, linecount):
number = ""
print("Rida algab")
print(lines[y])
for x in range(0, len(lines[y])):
if lines[y][x].isdigit():
if len(number) == 0:
numbrialgus = Point(y, x)
number += lines[y][x]
else:
if len(number) > 0:
numbrilopp = Point(y, x)
print(f"Otsime numbrit {number}")
if vaatakast(numbrialgus, numbrilopp, lines):
kogunumber += int(number)
else:
print(f"Pole number {number}")
number = ""
if len(number) > 0:
numbrilopp = Point(y, x)
print(f"Otsime numbrit {number}")
if vaatakast(numbrialgus, numbrilopp, lines):
kogunumber += int(number)
else:
print(f"Pole number {number}")
number = ""
print(kogunumber)