Programa random que decidí crear en recreación a un antiguo proyecto de otra persona en nodejs.
Esto se creó como un puzzle y que otras personas intenten descifrarlo.
Este proyecto crea un puzzle numérico interactivo basado en un número objetivo R
(0 a 1,000,000,000) ingresados. Asigna valores a siete cuadrados (tres amarillos, dos azules, dos rojos) para cumplir la ecuación:
- Entrada: Se tiene que ingresar
R
mediantetkinter
. - Cálculo:
encontrar_mejores_factores(R)
: Calcula factores óptimos (f1
,f2
para azules, suma de amarillosS_am
, suma de rojosk
) minimizando la diferencia entre el producto azul ysqrt(R)
.split_sum(n, num_parts)
: Distribuye valores aleatoriamente entre amarillos (3 partes) y rojos (2 partes), asegurando diversidad.generar_cuadrados(R)
: Crea una lista de 7 cuadrados con valores y colores, mezclados aleatoriamente.
- Visualización (
mostrar_puzzle
):- Muestra en un lienzo de
tkinter
los cuadrados coloreados con sus valores, el objetivoR
y la ecuación. - Incluye botones:
- Generar nuevamente: Redistribuye valores para el mismo
R
. - Exportar como imagen: Guarda los cuadrados (sin ecuación) como
puzzle.png
usandomatplotlib
.
- Generar nuevamente: Redistribuye valores para el mismo
- Muestra en un lienzo de
- Caso especial: Si
R = 0
, usa valores triviales (amarillos y rojos = 0, azules = 1).

El calculo es para comprobar que la cantidad ingresada es posible de encontrar mediante una operacion.