-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path11a.py
68 lines (54 loc) · 1.62 KB
/
11a.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#Advent of code 2021
# 6/22/22 day 11a
# Joe McFarland
# import re
filename = "data11_short2.txt"
#a_list = open(filename).read().splitlines()
a_list = open(filename).read().split()
maxrows = len(a_list)
print(a_list)
maxcols = len(a_list[0])
print(f"maxrows = {maxrows}, maxcols={maxcols}")
array = []
def flash(row, col):
rcoffset = [[-1,-1], [-1,0], [-1,1], [0,-1], [0,1], [1,-1], [1,0], [1,1]]
for offsetsrow, offsetscol in rcoffset:
r = row+offsetsrow
c = col+offsetscol
if r < 0 or r >= maxrows or c < 0 or c >= maxcols:
print(f"flash exceeded, r={r}, c={c}")
return
array[r][c] += 1
if array[r][c] > 9:
flash(r, c)
array[r][c] = 0
def dumpMatrix(octos):
for y in range(len(octos)):
for x in range(len(octos[0])):
print(octos[y][x],end='')
print()
print()
for line in a_list:
row1 = [int(elem) for elem in line]
#print(f"row={row1}")
array.append(row1)
print(f"array={array}")
# for row in range(0, maxrows):
# for col in range(0, maxcols):
# energy = array[row][col]
# #print(f"{energy}")
dumpMatrix(array)
for step in range(0, 5):
for row in range(0, maxrows):
for col in range(0, maxcols):
#energy = array[row][col]
array[row][col] += 1
if array[row][col] > 9:
print(f"{row} {col} : exceeded: {array[row][col]}")
#flash(row, col)
array[row][col] = 0
#print(f"{energy}")
dumpMatrix(array)
#dumpMatrix()
dumpMatrix(array)
#print(f"totalrisk = {totalrisk}")