diff --git a/3/advent_1.py b/3/advent_1.py new file mode 100755 index 0000000..bbc533d --- /dev/null +++ b/3/advent_1.py @@ -0,0 +1,98 @@ +#!/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) \ No newline at end of file