Visualización de gráficos: juego de mesa de Scotland Yard

Quiero imprimir un tablero para Scotland Yard, un juego de tablero basado en gráficos con 200 nodos y muchas aristas (cada arista puede ser de 3 colores diferentes). El tablero se ve así:

ingrese la descripción de la imagen aquí

Si quiero dibujar mediante programación un tablero para este juego, necesitaré las siguientes características:

  • Colores, los nodos deben poder ser de varios colores (por ejemplo, un círculo naranja dentro de un rectángulo verde azulado)
  • Capacidad para hacer que los bordes y los nodos sean muy audaces/gruesos
  • Trata bien con el desorden (tal vez podría establecer a través de un parámetro qué tan espaciados estarían los nodos en la representación)
  • Biblioteca en uno de C, C++, Python o Java
  • Gratis como en la cerveza

Todos los signos apuntan a graphviz como la biblioteca de este tipo más popular, mis preguntas para alguien que ha usado graphviz son:

  1. ¿Graphviz es compatible con las características que quiero?
  2. ¿Qué lenguaje de programación tiene las bibliotecas graphviz más fáciles de usar?
  3. ¿Qué otras bibliotecas de dibujo de gráficos cumplen con estos requisitos?
El único requisito que es difícil de cumplir en graphviz es uno que no menciona: los bordes deben seguir las marcas viales no necesariamente rectas en la imagen del mapa de calles subyacente, a menos que también lo esté generando mediante programación.
Correcto, estoy dispuesto a renunciar a ese requisito si puedo hacer que las otras cosas funcionen. En realidad, podría ser menos confuso visualmente (aunque no tan bonito) si los autobuses y el metro no siguen los mismos caminos que toman los taxis.
¿Encontraste alguna solución?
@mawg Resulta que hay demasiados nodos y bordes para que graphviz los maneje con gracia (es decir, se ve mal), pero reveló algunas cosas interesantes sobre qué áreas tienen más conectividad que otras...
Jugué con un poco de código aquí: bitbucket.org/turbulencetoo/stomp-the-yard/src/master
¿Cómo podemos jugar a este juego?

Respuestas (1)

He escrito algo similar a esto en Java usando un HashMap donde esencialmente la clave es un lugar y el valor es una lista de arreglos de lugares, por lo que crea una especie de estructura gráfica. Probablemente no sea la forma más eficiente de hacer las cosas, pero definitivamente funciona cuando se trata de hacer un uso rápido y fácil.

De acuerdo, pero para que su software sea utilizable, deberá proporcionar un enlace.