A repro for all my Advent of ode tasks
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

77 lines
2.4 KiB

import os
dir = os.path.dirname(os.path.abspath(__file__))
with open(os.path.join(dir, './input.txt'), 'r') as input_file:
lines = input_file.readlines()
random_num_list_str = lines[0].strip()
random_num_list = random_num_list_str.split(',')
grids = [[[]]]
grid_sums = []
grid = -1
row = 0
score_id = 5
grid_size = 5
for i in range(len(lines)):
if i == 0:
continue
line = lines[i].strip()
if line == "":
grid = grid+1
row = 0
grids.append([])
grid_sums.append(0)
continue
grids[grid].append([])
chars = line.split()
for j in range(len(chars)):
number = chars[j]
grids[grid][row].append(number)
grid_sums[grid] = grid_sums[grid] + int(number)
row = row + 1
print(f"{i}: {lines[i]}")
winning_boards = []
for i in range(len(random_num_list)):
called_number = random_num_list[i]
for a in range(len(grids)-1):
if a in winning_boards:
continue
grid = grids[a]
for b in range(len(grid)):
row = grids[a][b]
if called_number in row:
col = row.index(called_number)
grid_sums[a] = grid_sums[a] - int(called_number)
if len(row) == 5:
row.append(0)
row[grid_size] = row[grid_size]+1
if row[grid_size] == score_id:
print("winner!")
print(a)
print(int(called_number))
print(grid_sums[a] * int(called_number))
winning_boards.append(a)
break
if len(grid) == grid_size:
grid.append([])
if len(grid[grid_size]) < grid_size:
grid[grid_size].extend([0 for x in range(grid_size)])
grid[grid_size][col] = grid[grid_size][col]+1
if grid[grid_size][col] == score_id:
print("winner!")
print(a)
print(int(called_number))
print(grid_sums[a] * int(called_number))
winning_boards.append(a)
break
print(winning_boards)