Jump to content
pep0n

Generador de circuitos

Recommended Posts

Alguna vez os habéis preguntado ¿cuántos circuitos puedo diseñar con las pistas que tengo?

 

Por otro lado, muchas personas cuando empiezan en el hobby lanzan preguntas del estilo, ¿alguien me puede diseñar un circuito ...?

 

Pues aquí tenéis la respuesta a esas preguntas.

 

El miércoles por la noche estaba durmiendo cuando me desperté a las 4 de la mañana porque estaba soñando que podía hacer un programa que generara de manera automática circuitos. Me quede despierto un buen rato dando vueltas pensando si eso que había soñado se podía hacer o no. A las 5 ya había decido que si que se podía hacer. Así que me levanté para tomar notas. No es la primera vez que sueño algo y luego me olvido. 

 

El miércoles dediqué un rato a repasar trigonometría porque la tenía muy olvidada y hacia mucha falta.

 

El jueves por la mañana tuve una crisis. Me puse a pensar en el coste temporal de lo que estaba pensando hacer y me asusté. Por la tarde, dándole más vueltas al asunto me equivoqué y creí que al coste no iba a ser tan alto. Así que me lancé a hacerlo.

El sábado, con el programa ya funcionando, volví a pensar en el coste temporal y me dí cuenta de lo que había hecho. Si lo hubiera pensado bien antes igual no lo hubiera intentado. Pero como me equivoqué y ya estaba hecho, solo había que pulir la interfaz para que se pudiera usar.

Así que aquí lo tenéis por si queréis jugar con él.

La interfaz es muy sencilla:

limpia.png

 

Puedes poner el número de pistas que quieres utilizar. El ancho y alto del tablero que servirá como base. El error de cierre del circuito. Por defecto es 1cm si queréis un cierre perfecto poner un 0. 

A continuación viene el susto. Indica el espacio de soluciones en el que tiene que buscar los circuitos. Utiliza fuerza bruta. Osea intenta todas las combinaciones posibles de pistas. En este momento sólo limitadas por la superficie del tablero en el que debe ir.

Si queréis intentarlo, le dais al botón de Generar y ... empieza a buscar circuitos que se puedan cerrar. 

generando.png

El botón de Generar se transforma en un Parar y encima de él aparece el tiempo que lleva buscando. Al lado un número se irá incrementando conforme encuentre circuitos. Podréis verlos cambiando con el control de la derecha del todo.

En el estado actual, y sin capar más el espacio de búsqueda es un juguetito en el que para tableros pequeños y pocas pistas se puede ver algo. Si ponéis tablero grandes o muchas pistas ... puede tardar años o quizás más.

Además, los circuitos que encuentra son muchos y la mitad están duplicados (son simétricos a otros). 

A modo de ejemplo: en mi máquina tal y como está configurado por defecto (8 rectas de 40, 4 R1 y 8 R2 en un tablero de 4m x 2m) me descubrió 46.644 circuitos y necesitó 37 minutos y 21 segundos.

Si queréis jugar, os lo podéis descargar de aquí.

Editado por pep0n

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Se me olvidaba, los circuitos siempre empiezan a piñón fijo por una recta de 40cm en medio del borde de la pista, adicional a lo que se haya puesto en el control de cantidad de rectas de 40cm. Vamos, 1 recta más.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Gran aportación!!!! A ver cómo funciona...

 

 

No es grande. Es chiquitita y no vale de mucho ... de momento.

 

Probaré con las pistas del diseño del California a ver qué sale :smile:

 

Te diría que te fueras a tomar un café. Pero no será suficiente. 

 

Ya estoy pensando en introducir el concepto 'dificultad' en la generación a ver si soy capaz de restringir el espacio de búsqueda según lo difícil que vaya a ser un circuito ... tengo que pensar más.

Editado por pep0n

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

El miércoles dediqué un rato a repasar trigonometría porque la tenía muy olvidada y hacia mucha falta.

:huh: :huh:  Es cierto, la trigonometría sirve!!!

Si la docencia fuera de otra forma y aplicada a casos reales en vez de tantos problemitas en cuadernos....

 

 

Ya estoy pensando en introducir el concepto 'dificultad' en la generación a ver si soy capaz de restringir el espacio de búsqueda según lo difícil que vaya a ser un circuito ... tengo que pensar más.

 

¿Vas a poner unas tijeras de podar en el algoritmo? :ja:

 

Por cierto, gracias!!!! esto será otro CarreraSlot seguro!!!

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

¿Vas a poner unas tijeras de podar en el algoritmo? :ja:

 

Exactamente. Esa es la idea. Ahora solo hay que pensar en como será la tijera.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Mare meua Pepon¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ gracias una vez mas.

 

Uffff como Litus se ponga a jugar....en breve se avecinan obras en la pista del California :biggrin:  :biggrin:

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

grande maestro , no se si se podra pero estaria bien  un programita de estos para android , poder utilizarlo en el movil o tablet para ratos muertos que tienes durante el dia o por ejemplo el dia que se decide cambiar el trazado en un club.

 

como siempre ahi que quitarse el sombrero  :aplausos:  :aplausos:

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Lo siento Serito pero para Android sería muy complicado porque necesita mucha capacidad de cálculo. Al menos en su versión actual.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Y como dije, hay una nueva versión. 

Esta vez se ha introducido el concepto de "dificultad" de un circuito. Es MUY discutible y quizás alguien tenga una idea mejor. Estaré encantado de oírla.

En su versión actual se define la dificultad de un circuito como el resultado de ir sumando o restando una serie de pesos en función de la pista que se coloque y de si es una contracurva o no.

Las rectas disminuyen la dificultad de un circuito:

* 40cm: -4

* 20cm: -2

* 10cm: -1

Las curvas aumentan la dificultad de un circuito:

* R1: +4

* R2: +2

* R3: +1

* R4 y R5 no aumentan la dificultad.

Las contracurvas multiplican por 6 la dificultad del circuito en función de la curva que se está poniendo. Ej: si la contracurva es una R1 la dificultad que se añade al circuito es (4*6).

¿Por qué esos valores? Por intuición y por haber probado varios y ser lo que mejor me han parecido. 

La idea es que si un circuito va a ser muy difícil no siga por el camino que está explorando. Así pues hace falta un valor de máxima dificultad para podar los caminos. Ese valor se puede poner en la interfaz debajo de la etiqueta que pone 'Dificultad'. Si se pone un valor muy alto no descarta ningún circuito y entonces funciona como la versión anterior.

conDificultad.png

Ahora, con los valores por defecto y una dificultad de 20. Tarda sólo 5:43 (mucho más rápido) y encuentra 5957 circuitos (a costa de haber desechado muchos por el camino)

Podéis descargarlo de aquí

Podéis ver que hay un botón llamado P. Si alguien quiere experimentar lo que es la exploración de las posibles soluciones que lo pulse.

Editado por pep0n

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Y no será la última versión. Esta sigue siendo una mala solución.

 

Ya se me ha ocurrido la 'buena'. Pero me costará bastante hacerla.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

No es grande. Es chiquitita y no vale de mucho ... de momento.

bueno si tú lo dices... Para mí es grande... Mucha gente demanda diseños y creo que será muy útil... A ver si puedo probarlo...

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Crear una cuenta o conéctate para comentar

Tienes que ser miembro para dejar un comentario

Crear una cuenta

Regístrese para obtener una cuenta nueva en nuestra comunidad. ¡Es fácil!

Registrar una nueva cuenta

Conectar

¿Ya tienes una cuenta? Conéctate aquí.

Conectar ahora


×