Estoy tratando de recrear una versión electrónica del juego que se muestra a continuación:
El juego es básicamente un gráfico conectado, con el número que representa los grados obligatorios de cada vértice. El jugador debe conectar todo el grafo sin perder de vista los grados de cada vértice.
Mi objetivo es generar el gráfico correcto, para que definitivamente haya una solución. Mi idea inicial es generar aleatoriamente una matriz de adyacencia y comprobar si la matriz es euleriana. ¿Existe un algoritmo/fórmula de este tipo?
Otro método sería generar un gráfico conectado, y luego simplemente contar el grado de cada vértice y presentarlo al usuario. Pero prefiero la primera opción de generar un gráfico euleriano desde el principio.
Tal vez incluso lo esté complicando demasiado. Estaré encantado de escuchar cualquier otra idea.
5 votos
Creo que tu enfoque no cumple la condición de "no tener zonas cerradas". Por lo tanto, deberías empezar con un árbol y no cualquier gráfico conectado al azar. Quizás la parte más interesante es la unicidad, es decir, comprobar que ningún otro árbol resuelve el puzzle (cualquier grafo conectado que cumpla la condición de grado debe ser también un árbol)
0 votos
Estoy de acuerdo en que debería ser un árbol, se me pasó esa parte. No me preocupa demasiado la singularidad, escribiré el programa de forma que se acepten todas las soluciones correctas.