Punto de conteo para un juego recurrente de dominó: Carcassone

Tengo que build una versión 2D de este juego:

http://en.wikipedia.org/wiki/Carcassonne_(board_game )

contar puntajes para Towns and Roads parece bastante fácil (pero no estoy seguro), pero para Lands siento que no tengo ni idea.

Supongo que puedo definir 3 "tapones" para cada lado, 12 para cada azulejo, y luego usar pares para crear enlaces entre ellos dentro de un azulejo …

Recordé haber visto un libro sobre grafhes con impulso, pero estoy seguro de que no necesito eso …

Las tierras solo se countn al final del juego, por lo que solo tendrás que hacer esto una vez por session de juego.

Como sabrá de antemano todas las ciudades completadas (para calcular puntos para las ciudades), probablemente haga lo siguiente:

  • Elimine un "seguidor" de la list de seguidores ( list A ) que se colocaron en "tierra". Agregue el seguidor a la list B.
  • Comience a llenar inundaciones en la position de seguidores.
  • Si su relleno llega a una ciudad (que no se agregó antes), agréguela a una list de ciudades adyacentes.
  • Si su relleno golpea a otro seguidor, elimínelo de la list A y agréguelo a la list B
  • La separación de las carreteras, ríos o piezas faltantes obviamente detendrá el llenado de la inundación.

Después de que se complete el llenado de inundación, cuente el número de seguidores de la list B para cada jugador. Según el set de reglas (segunda edición, tercera edición) que deba implementar, ahora puede dividir puntos para todos los jugadores que colocaron a sus seguidores en el terreno en cuestión.

Ahora repita este procedimiento, siempre y cuando la list A todavía contenga seguidores.

Puede que me equivoque, pero supongo que un enchufe (o nodo) por esquina debería ser suficiente para modelar las diferentes conexiones posibles.