Files
AdventOfCode2025/Problem4_1.py
2025-12-06 10:23:09 -05:00

72 lines
1.6 KiB
Python

def checkRolls(x: int, y: int) :
rolls = 0
#!Check row above
if y > 0 :
#Check above left
if x > 0 and inputGrid[y - 1][x - 1] == "@" :
rolls += 1
#Check directly above
if inputGrid[y - 1][x] == "@" :
rolls += 1
#Check above right
if x < len(inputGrid[y - 1]) - 1 and inputGrid[y - 1][x + 1] == "@" :
rolls += 1
#!Check same row
#Check left
if x > 0 and inputGrid[y][x - 1] == "@" :
rolls += 1
#Check right
if x < len(inputGrid[y]) - 1 and inputGrid[y][x + 1] == "@":
rolls += 1
#!Check row below
if y < len(inputGrid) - 1 :
#Check below left
if x > 0 and inputGrid[y + 1][x - 1] == "@" :
rolls += 1
#Check directly below
if inputGrid[y + 1][x] == "@" :
rolls += 1
#Check below right
if x < len(inputGrid[y]) - 1 and inputGrid[y + 1][x + 1] == "@" :
rolls += 1
return rolls
testInput = [
"..@@.@@@@.",
"@@@.@.@.@@",
"@@@@@.@.@@",
"@.@@@@..@.",
"@@.@@@@.@@",
".@@@@@@@.@",
".@.@.@.@@@",
"@.@@@.@@@@",
".@@@@@@@@.",
"@.@.@@@.@."
]
def readFile() :
ary = []
with open("files/Problem4.txt", "r") as file :
for line in file :
ary.append(line.replace("\n", ""))
return ary
#inputGrid = testInput
inputGrid = readFile()
accessibleRoles = 0
x = 0
y = 0
for y in range(len(inputGrid)) :
for x in range(len(inputGrid[y])) :
if inputGrid[y][x] == "@" :
rollsAround = checkRolls(x, y)
#print(f"roll at ({x}, {y}) with {rollsAround} rolls around")
if rollsAround < 4 :
accessibleRoles += 1
#print(f"Accessible roll at ({x}, {y}) with {rollsAround} rolls around")
print(f"Total accessible roles = {accessibleRoles}")
#Total accessible roles = 1445