#=======================================
# Marzo 2025: Jesús Del Mar Rodríguez
# jesusdelmar.r@gmail.com
# Versión Python utiizada: 3.12.3
# Proyecto de código abierto registrado bajo licencia Creative Commons Internacional 4.0 
# Atribución/Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional
# https://github.com/eduroboticave/sigepiros
#========================================
#INSTRUCCIONES PARA SU USO
# 1.- Todos los archivos (imágenes y script [pista_creator5.py])deben estar dentro de una misma carpeta.
# 2.- NO cambiar el nombre de las imágenes, eso genera falla.
# 3.- Iniciar el archivo "main_1.py"
# 6.- Si es mucho tiempo de espera, detenga e inicie de nuevo.
#--------------------------------------

Librerías necesarias e importadas:
import numpy as np
from PIL import Image
from itertools import product
from math import isqrt
import random
from collections import defaultdict
import re
(En teoría, solo debería ser necesario instalar "numpy" y "PIL" en caso de no estarlo).

Fecha: 17/04/2025

Versión autoejecutable compilada en un sólo archivo

Fecha: 24/02/2025

LO QUE SE HA LOGRADO:

- Algoritmo general para la generación de anillos (loops) cerrados en pistas de dimensiones AxB, para una cantidad de piezas NO vacías determinada.

- Generación de imagen pre-visualización de la pista generada.

- Dificultad 1 completa (apta para modificaciones de ser necesario).

- Dificultad 2 completa (apta para modificaciones de ser necesario).

- Dificultad 3 parcialmente completa.



LO QUE HACE FALTA CORREGIR/MODIFICAR:

- Ordenar debidamente el código.

- Utilización de todas las piezas disponibles para la dificultad 3 (A la fecha no se utilizan todas las disponibles, solo algunas).

- Optimizar los algoritmos que generan los anillos (loops) cerrados, pues en ocasiones tardan mucho en generar el anillo.

- Corregir o mejorar los algoritmos que dan orientación a las piezas "intersección", para ser visualizadas con la orientación correcta en la imagen final de la pista generada.

- Impresión de los códigos y cantidad de piezas necesarias para armar la pista generada en el mundo real.

- Cualquier sugerencia o cambio requerido que haya sido informado.



INSTRUCCIONES PARA EL USO DEL PROGRAMA EN SU VERSIÓN ACTUAL (10/03/2025):

1.- Por favor no cambiar el nombre de las imágenes a ser utilizadas por el programa, haría que este falle.

2.- El script de Python debe estar ubicado en la misma carpeta que las imágenes a ser utilizadas por el mismo.

3.- Se puede ejecutar el script de python como se desee. Sim embargo, considerar que solo se han hecho pruebas ejecutando el script desde Ubuntu, utilizando en la carpeta donde se encuentra el script el comando "python3 pista_creator4.py" en el terminal.

4.- Una vez ejecutado el script, ingresar de manera ordenada los parámetros requeridos por el programa: dificultad (1 al 3), cantidad de filas de la pista, cantidad de columnas de la pista, cantidad total de piezas NO vacías a utilizar para generar la pista (debe ser menor a la cantidad de piezas totales de la pista, fila x columna).


NOTAS DE INTERÉS:

- Si el programa tarda más de 10 segundos en generar un resultado final (imágen de pre-visualización de la pista), por favor detener la ejecución actual del programa y volverlo a ejecutar. Se está trabajando en optimizar los algoritmos de generación de la pista para que esto no se tenga que hacer.

- Se puede detener un script de python desde la terminal (en Ubuntu) utilizando la combinación de teclas: Ctrl+C.

- NO hacer mucho caso a la información que aparecen en consola mientras el programa se ejecuta; estos se están depurando y sirven para monitorear la ejecución. 
