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ó? +
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 🤣🤣🤣
El octavo de #AdventOfCode parte 2 en SQL. Un poco ñapas para mi gusto pero es lo que hay!
Empezamos como siempre..
Limpiamos linea alinea y separamos x, y, altura para cada arbol usando CTEs en secuencia.
Cruzamos cada arbol con su scan a derecha, izquierda, arriba y abajo con sub-consultas correlacionadas. Hay que cambair el orden de los que devuleven para que quedan en funcioón del punto de vista. Cada resultado se agrega en un array.
#AdventOfCode 5 Supply Stacks en SQL puro (PostgreSQL)
Si te gusta el SQL lo vas a flipar (creo) , sígueme en este triste historia (por lo de "La Roja") +
Empezamos como siempre, y toca cargar el fichero de test que ya tiene tela...
Empezamos enumerando las lineas del fichero (ya en la tabla de input), quedandonos con la parte de las pilas y calculando la longitud maxima de entre todas las líneas (por si caso no eran iguales)
Quien no sepa que esto que lea mis otros hilos porque ya va siendo lo mismo todo el rato
Tan facil que no lo voy a despiezar pues creo que se entiende de un vistazo y además esta comenetado. Convierte en rangos y comprueba inclusiones entre ellos.
Bueno, de vuelta al #AdventOfCode 3 Rucksack Reorganization
Empezamos leyendo los datos con ayuda de una tabla y restricciones adecuadas..
He creado una vista con la solución y así la reuso para pasar el test y luego el fichero de entrada del desafío.
Seguidamente os explico, aquí la muestro plegada junto con el código completo.
Empiezo mapeando las prioridades ['a'..'z'] -> [1..26] y ['A'..'Z'] -> [27..52] con dos consultas sencillas y el operador UNION ALL
Este año en la encuesta de evaluación docente me van a crujir los alumnos y seguramente las prácticas de la asignatura son lo más parecido a lo que demandan cuando recién aterrizados en el curro te quejas de lo que no visteis en la universidad
Les hemos hecho currar a base de bien primero un diseño con su modelo entidad relación y su diccionario de datos justificando cada dato cada dominio cada tipo y créeme que les hemos hechi pelear cada punto y cada coma lo mismo para el modelo relacional...
después nos hemos dado un conjunto de datos con muchos defectos han tenido que cargarlos en tablas y examinarlos y razonar sobre qué transformaciones o incluso qué modificaciones a su modelo original deberían hacer ( Y efectuarlas!)