Bueno pues "Hydrothermal venture" no ha resultado muy complicado, me temo que voy a flipar cuando llegue al 6...
Os cuento...
*SPOILERS* *SPOILERS
#AdventOfCode2021 #adventofcode
El parser de parsy se come la lista de segmentos de una tacada, aqui nada que ver salvo que quieras aprender un poco de Parsy.
Convierto los segmentos x0, y0 -> x1, y1 a (x0, y0, x1, y1)
filtramos los segmentos vert. y horiz. calculamos el grid necesario y dibujamos cada segmento en el grid (expandiendo horizontal o verticalmente en puntos (x, y) y anotando 1 en el grid por cada paso.
Finalmente contamos los solapamientos.
(código sin cometarios que me canso).
draw se encarga de "dibujar" los puntos de la expansion de cada segmento sumando uno al valor del grid en la coordenada x, y
unroll se encarga de expandir cad segmento bien en vertical u horizontal bien en diagonal
Aqui os dejos las expansiones. Usando compresiones de lista generamos todos los puntos intermedios en un sentido u otro.
Pues con todo ello atacamos los datos de test de la primera parte.. perfecto!
Confiados nos atrevemos con el puzzle...
Bueno me puedo tomar un descanso para la segunda parte...
La segunda parte nos pide observar las diagonales y calcular los solapamientos por lo que modificamos la segunda parte quitando el filtro H/V
para las expansiones diagonales tengo una funcion _step ya que las compresiones de lista no generaban caminos en diagonal sino cambios en vertical y horizantal consecutivos (el cartesiano de x, y entre origen y destino)
Y ya podemos probar con los datos de test...
Y seguidamente atacamos el puzzle...
Bueno pues ya estaría. Perdonad la parquedad de comentarios pero asi me canso menos tecleando (el pinzamiento va mejorando pero aun cuesta mover el grazo izquierdo)
Diviertanse!
#AdventOfCode2021 #adventofcode
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.