Bueno ya me levanté de la cama y me pasé el Gigant Squid part1

pues vamos allá...

*SPOILERS* *SPOILERS*

#adventofcode #AdventOfCode2021
El parser, este es una bestia de parser se come el fichero entero y digiere la lista de números y todas las tarjetas de juego que se encuentre.. Que mas puedo decir, ejercito casi todo lo que tienen Parsy y como dice @FabioskySG "Hard work pays off" +
Ahora os enseñaré el cuerpo de la parte 1. Construyo instancias de la clase board y luego chequeo todos los números hasta que una de ellas devuelve "Bingo!" tras lo cual obtengo el score y ya hemos terminado. Sencillo gracias a q el trabajo esta en los métodos de la clase Board.+
Si amigos hoy hemos hecho un poco de POO, mi pequeña y cutre clase Board me ha resuelto el trabajo, no espereis grandes maravillas de diseño orientado a objetos no obstante... +
Veamos el constructor, guardamos los numeros, ponemos el estado a no ganador e incializamos las marcas y las estadísticas a cero. +
Check comprueba si el número esta en la tarjeta, marca la posición y actualiza las estadisticas de fila, columna lo que nos permite saber si ya tenemos Bingo! o no. Actualiza el estado de la tarjeta y devuelve el resultado como True ó False.
__bool__: me he permitido sobrecargar este método para que la instancia valga True ó False dependiendo de si tenemos Bingo para cantar o no... Realemnte no me hizo falta +
__str__: Otro método mágico con un pequeño y cutre snippet para imprimir el contenido de la tarjeta +
score: con este método sacamos los valores no marcados y los sumamos multiplicando el resultado por el ultimo valor chequeado que es el que resulto en Bingo! +
Veamos si este intemerato enfoque sin TDD ni nada nos ha llevado al desastre o qué. Pasamos los datos del test sin mucho apuro... +
Bueno por probar suerte no va a pasar nada, ¿no? Asi que allá vamos.. Hay muchas tarjetas en este fichero asi que la salida es demasiado verbosa y la he cortado en su incio y final que es lo que interesa. Funcionó? +
Suertudo que soy! Otra estrella para la saca..

Diviértanse!!

#adventofcode #AdventOfCode2021
El hilo "desenrollado"
threadreaderapp.com/thread/1467983…
Bueno pues me puse hace un rato con la segunda parte, simplemente seguir probando números en las tarjetas que no han ganado y memorizar cual fué la ultima en ganar asi que solo había que tocar 3 lineas de código..
Probamos con el fichero de test y vemos que muestra los resultados esperados.. +
Probamos con el puzzle completo... Son 100 número y eventualmente muchas tarjetas obtienen Bingo! pero finalmente agotamos los números... +
8 estrellas!! habrá ya @santimntl avanzado otro poco? Pues no lo dejes que "el manco" te sigue a la zaga 🤣🤣🤣

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with The Code Maverick

The Code Maverick Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @maverick_code

8 Dec
I just completed "Seven Segment Search" - Day 8 - Advent of Code 2021 adventofcode.com/2021/day/8 #AdventOfCode
Otro trabajo "guarro" y que conste que quise hacerlo de una forma elegante pero acabé haciéndolo en plan "el juego de la imitación" buscando el "Heil JS!" y esperando pacientemente a que la "bomba" cuadrase todo..

Veamos..

*SPOILERS* *SPOILERS*

#AdventOfCode #AdventOfCode2021
el parser como siempre para leer todo sin errores que ya bastante lío nos van a formar los amigos de Advent of Code.. Image
Read 11 tweets
7 Dec
I just completed "The Treachery of Whales" - Day 7 - Advent of Code 2021 adventofcode.com/2021/day/7 #AdventOfCode
Ha sido muy guarro y no me ha gustado (he usado la fuerza bruta) asi que bueno ya daré con la solución mas elegante que seguramente será una función conveza o algo similar 😓

Veamos como quedó..

*SPOILERS* *SPOILERS*

#AdventOfCode #AdventOfCode2021
El parser... Image
Read 17 tweets
7 Dec
La 1º parte del Lanterfish ha sido facilisima (debe ser la segunda la puñetera)

Veamos..

*SPOILERS* *SPOILERS*

#adventodcode #AdventOfCode2021
El parser es mas bien directo ya que el formato es trivial a estas alturas "2,3,4,5,2" 🧐 Image
el ciclo de vida del "lanterfish" es cuestion de entenderlo bien.. una vez hecho la implementacion es trivial. El pez evoluciona estados y opcionalmente tienen un vástago... Image
Read 14 tweets
7 Dec
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) Image
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). Image
Read 15 tweets
5 Dec
Hoy no doy para mas, asi que he podido hacer la 1º parte del #AoC 3 "Binary diagnostics" pero me temo que voy a a ir perdiendo terreno con la cabeza de pelotón 😓

Vamos allá..
*SPOILERS* *SPOILERS*

#AOC201 #AdventOfCode2021
El parser, aqui he añadido una directiva de DoctTEST para poder chequear excepciones de Parsy +info:docs.python.org/3/library/doct…

Un parser muy sencillo claro.. +
Una vez leido calculamos cuantos códigos hay u que longitud tienen estos para crear una lista de contadores de bits, y los códigos gamma y epsilon de la longitud adecuada, fijaod en la primera parte de la función.. +
Read 16 tweets
5 Dec
El #AoC numero 2.

Os lo cuento brevemente, y la brevedad creedme ha sido una bendición porque no puedo teclear demasiado tiempo..

Vamos allá!

*SPOILERS* *SPOILERS*

#AdventOfCode #AOC2021
El parser se asegura que leemos los comandos correctamente y que no hay nada mas. Sanitizando la entrada me ahorro muchos chequeos en otras partes.. Un par de test unitarios muy básicos y a correr
Si las lambdas fueran mas expresivas me habia ahorrado las subfunciones (quizás con una namedtuple...). por lo demás es la clasica propagación del estado en bucle +
Read 9 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(