Working on 2023-12-18

This commit is contained in:
Frederik Baerentsen 2023-12-18 19:46:11 -05:00
parent 04cae681c3
commit dfa3493046
2 changed files with 104 additions and 15 deletions

77
2023/day18/part1.1.py Normal file
View File

@ -0,0 +1,77 @@
import sys
import os
from pprint import pprint
import time
from shapely.geometry import Point
from shapely.geometry.polygon import Polygon
import shapely
import numpy as np
from matplotlib.path import Path
import sympy
#colors
from termcolor import colored
def p(x,inside):
for idx,i in enumerate(x):
for jdx,j in enumerate(i):
#if j == '#':
# print(colored(j,'red'),end='')
#if (idx,jdx) in steps:
# print(colored(j,'blue'),end='')
if (idx,jdx) in inside:
print(colored(j,'green'),end='')
else:
print(j,end='')
print()
input_f = ''
if len(sys.argv) == 1:
input_f = 'test'
else:
input_f = sys.argv[1]
grid = []
with open(input_f) as file:
for line in file:
grid.append(line.rstrip().split())
steps = []
size = 20
cur = (0,0)
#cur = (int(size/2),int(size/2))
steps.append(cur)
for i in grid:
direction,length,color = i
length = int(length)
if direction == 'R':
cur = (cur[0],cur[1]+length)
if direction == 'D':
cur = (cur[0]+length,cur[1])
if direction == 'L':
cur = (cur[0],cur[1]-length)
if direction == 'U':
cur = (cur[0]-length,cur[1])
steps.append(cur)
polygon = Polygon(steps)
area = polygon.buffer(0.5,join_style="mitre").area
print(int(area))

View File

@ -6,9 +6,12 @@ import time
from shapely.geometry import Point from shapely.geometry import Point
from shapely.geometry.polygon import Polygon from shapely.geometry.polygon import Polygon
import shapely
import numpy as np
from matplotlib.path import Path from matplotlib.path import Path
import sympy
#colors #colors
from termcolor import colored from termcolor import colored
@ -18,8 +21,8 @@ def p(x,inside):
#if j == '#': #if j == '#':
# print(colored(j,'red'),end='') # print(colored(j,'red'),end='')
#elif (idx,jdx) in steps: #if (idx,jdx) in steps:
# print(colored(j,'green'),end='') # print(colored(j,'blue'),end='')
if (idx,jdx) in inside: if (idx,jdx) in inside:
print(colored(j,'green'),end='') print(colored(j,'green'),end='')
else: else:
@ -41,7 +44,7 @@ with open(input_f) as file:
pprint(grid) pprint(grid)
size = 1000 size = 20
pit = [ ['.']*size for i in range(size)] pit = [ ['.']*size for i in range(size)]
cur = (int(size/2),int(size/2)) cur = (int(size/2),int(size/2))
@ -112,23 +115,32 @@ for ydx,y in enumerate(pit):
#p(pit,s_ground) #p(pit,s_ground)
pprint(len(s_ground)) # pprint(len(s_ground))
pprint(len(m_ground)) # pprint(len(m_ground))
print(len(m_ground)+len(set(steps))) # print(len(m_ground)+len(set(steps)))
print('Part 1: ' + str(len(set(steps)))) # print('Part 1: ' + str(len(set(steps))))
print('Part 1.2: ' + str(len(s_ground)+len(set(steps)))) # print('Part 1.2: ' + str(len(s_ground)+len(set(steps))))
print(len(ground) + len(set(steps))) # print(len(ground) + len(set(steps)))
# p(pit,s_ground)
# print(len(s_ground))
# p(pit,m_ground)
# print(len(m_ground))
#print('Part 1: ',end='')
#print(area(polygon))
#print(len(m_ground))
print('Part 1.2: ' + str(shapely.area(polygon)))
# 57559
# 12835 # 58612
# 13134 # 62918
# 17440
# Part 1: 4306 # Part 1: 4306
# Part 1.2: 17141 # Part 1.2: 61865 //corrent
# 4306 # 4306