Working on 2023-12-13 p1
This commit is contained in:
parent
8544896239
commit
8bc7688e6c
@ -3,6 +3,7 @@ import os
|
||||
from pprint import pprint
|
||||
import time
|
||||
import math
|
||||
import numpy as np
|
||||
|
||||
#colors
|
||||
from termcolor import colored
|
||||
@ -21,7 +22,13 @@ def p(x,*args):
|
||||
print()
|
||||
|
||||
|
||||
with open(sys.argv[1]) as file:
|
||||
input_f = ''
|
||||
if len(sys.argv) == 1:
|
||||
input_f = 'test'
|
||||
else:
|
||||
input_f = sys.argv[1]
|
||||
|
||||
with open(input_f) as file:
|
||||
for line in file:
|
||||
grid.append(list(line.rstrip()))
|
||||
|
||||
@ -35,17 +42,42 @@ def rotate_grid(grid,times):
|
||||
p(grid)
|
||||
return grid
|
||||
|
||||
def find_sym(grid):
|
||||
def find_sym_col(grid):
|
||||
mirror = 0
|
||||
found = False
|
||||
|
||||
for c,col in enumerate(grid):
|
||||
if c+1 < len(col) and not found:
|
||||
#print('Testing columns' + str(c))
|
||||
mirror_count = 0
|
||||
for i in range(len(grid)):
|
||||
#print(grid[i][c],grid[i][c+1])
|
||||
if grid[i][c] == grid[i][c+1]:
|
||||
mirror_count += 1
|
||||
else:
|
||||
break
|
||||
if mirror_count == len(grid):
|
||||
found = True
|
||||
#print('mirror at ' + str(c))
|
||||
|
||||
for x in range(c,-1,-1):
|
||||
if (c-x)+c+1 < len(col):
|
||||
#print(x,(c-x)+c+1)
|
||||
mirror = False
|
||||
for y in range(len(grid)):
|
||||
if grid[y][x] == grid[y][(c-x)+c+1]:
|
||||
#print(grid[y][x],grid[y][(c-x)+c+1])
|
||||
mirror = c+1
|
||||
else:
|
||||
return None
|
||||
return mirror
|
||||
|
||||
|
||||
def find_sym_row(grid):
|
||||
mirror = 0
|
||||
found = False
|
||||
for r,row in enumerate(grid):
|
||||
if r+1 < len(grid) and not found:
|
||||
print('testing ' + str(r))
|
||||
#print('testing rows' + str(r))
|
||||
if grid[r] == grid[r+1]:
|
||||
for c in range(r,-1,-1):
|
||||
if (r-c)+r+1 < len(grid):
|
||||
@ -57,12 +89,29 @@ def find_sym(grid):
|
||||
return mirror
|
||||
|
||||
tmp = []
|
||||
|
||||
|
||||
def find_sym(grid):
|
||||
p(grid)
|
||||
t = find_sym_col(grid)
|
||||
if t == None:
|
||||
return find_sym_row(grid), 'r'
|
||||
else:
|
||||
return t,'c'
|
||||
|
||||
|
||||
result = 0
|
||||
for i in grid:
|
||||
if i == []:
|
||||
print('new grid')
|
||||
pprint(tmp)
|
||||
print(find_sym(tmp))
|
||||
t = find_sym(tmp)
|
||||
print(t)
|
||||
input()
|
||||
if t[1] == 'c':
|
||||
result += t[0]
|
||||
if t[1] == 'r':
|
||||
result = result + (100*t[0])
|
||||
tmp = []
|
||||
else:
|
||||
tmp.append(i)
|
||||
|
||||
print(result)
|
||||
|
Loading…
Reference in New Issue
Block a user