Add day 1-5
This commit is contained in:
Executable
+87
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
filename = "example.txt"
|
||||
filename = "input.txt"
|
||||
|
||||
with open(filename) as f:
|
||||
input = f.readlines()
|
||||
|
||||
board = [
|
||||
[letter for letter in line.strip()]
|
||||
for line in input
|
||||
]
|
||||
|
||||
y_dim = len(board)
|
||||
x_dim = len(board[0])
|
||||
|
||||
valids = []
|
||||
|
||||
do_print = False
|
||||
|
||||
def print_board(b, indexes_to_print=[]):
|
||||
if not do_print:
|
||||
return
|
||||
|
||||
for y in range(y_dim):
|
||||
for x in range(x_dim):
|
||||
if indexes_to_print:
|
||||
if (y, x) in indexes_to_print:
|
||||
print(b[y][x], end="")
|
||||
else:
|
||||
print(".", end="")
|
||||
else:
|
||||
print(b[y][x], end="")
|
||||
print()
|
||||
print()
|
||||
|
||||
print_board(board)
|
||||
|
||||
def is_x_mas(center):
|
||||
|
||||
vals = ["L", "M", "N", "O"]
|
||||
vals[0] = board[center[0] - 1][center[1] - 1]
|
||||
vals[1] = board[center[0] - 1][center[1] + 1]
|
||||
vals[2] = board[center[0] + 1][center[1] - 1]
|
||||
vals[3] = board[center[0] + 1][center[1] + 1]
|
||||
|
||||
vals = "".join(vals)
|
||||
|
||||
x_mases = [
|
||||
"MMSS",
|
||||
"MSMS",
|
||||
"SMSM",
|
||||
"SSMM",
|
||||
]
|
||||
|
||||
print(f"{center}: {vals}")
|
||||
if vals in x_mases:
|
||||
poses = [
|
||||
center,
|
||||
(center[0] - 1, center[1] - 1),
|
||||
(center[0] - 1, center[1] + 1),
|
||||
(center[0] + 1, center[1] - 1),
|
||||
(center[0] + 1, center[1] + 1),
|
||||
]
|
||||
|
||||
print_board(
|
||||
board,
|
||||
poses
|
||||
)
|
||||
valids.append(poses)
|
||||
return True
|
||||
return False
|
||||
|
||||
count = 0
|
||||
|
||||
for y in range(1, y_dim - 1):
|
||||
for x in range(1, x_dim - 1):
|
||||
if board[y][x] != "A":
|
||||
continue
|
||||
count = count + is_x_mas((y, x))
|
||||
|
||||
|
||||
print_board(board, [x for xs in valids for x in xs])
|
||||
|
||||
print(count)
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
MMMSXXMASM
|
||||
MSAMXMSMSA
|
||||
AMXSXMAAMM
|
||||
MSAMASMSMX
|
||||
XMASAMXAMM
|
||||
XXAMMXXAMA
|
||||
SMSMSASXSS
|
||||
SAXAMASAAA
|
||||
MAMMMXMMMM
|
||||
MXMXAXMASX
|
||||
@@ -0,0 +1,14 @@
|
||||
[tool.poetry]
|
||||
name = "aoc"
|
||||
version = "0.1.0"
|
||||
description = ""
|
||||
authors = ["restitux <restitux@ohea.xyz>"]
|
||||
readme = "README.md"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.12"
|
||||
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core"]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
Reference in New Issue
Block a user