Compare commits

..

No commits in common. "7ce86c3d443ca7efa8e57761663bf120e6cadeee" and "04cae681c3e133db7a339ec99ff063e3e70ecc30" have entirely different histories.

3 changed files with 15 additions and 193 deletions

View File

@ -1,77 +0,0 @@
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,12 +6,9 @@ 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
@ -21,8 +18,8 @@ def p(x,inside):
#if j == '#': #if j == '#':
# print(colored(j,'red'),end='') # print(colored(j,'red'),end='')
#if (idx,jdx) in steps: #elif (idx,jdx) in steps:
# print(colored(j,'blue'),end='') # print(colored(j,'green'),end='')
if (idx,jdx) in inside: if (idx,jdx) in inside:
print(colored(j,'green'),end='') print(colored(j,'green'),end='')
else: else:
@ -44,7 +41,7 @@ with open(input_f) as file:
pprint(grid) pprint(grid)
size = 20 size = 1000
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))
@ -115,32 +112,23 @@ 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
# 58612 # 12835
# 62918 # 13134
# 17440
# Part 1: 4306 # Part 1: 4306
# Part 1.2: 61865 //corrent # Part 1.2: 17141
# 4306 # 4306

View File

@ -1,89 +0,0 @@
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
start_time = time.time()
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)
steps.append(cur)
for i in grid:
color = i[2][2:-1]
match int(color[-1:]):
case 0:
direction = 'R'
case 1:
direction = 'D'
case 2:
direction = 'L'
case 3:
direction = 'U'
length = int(color[:-1], 16)
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))
print("--- %s seconds ---" % (time.time() - start_time))