ylesanne 1
This commit is contained in:
98
3/advent_1.py
Executable file
98
3/advent_1.py
Executable file
@@ -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)
|
||||
Reference in New Issue
Block a user