Tal vez así es como se hace típicamente. Tiene su lista de diferentes mosaicos que representan los mosaicos de una carretera en todas sus orientaciones posibles. De izquierda a derecha, las cuatro esquinas, de arriba a abajo, lo que sea. Ahora indexará todos esos mosaicos con un byte cada uno. 8 bits, uno para cada dirección. Esto podría estar en un hashmap o por nombre de archivo ... sin embargo, desea hacer esto.
Entonces tienes esto:
El código de byte para el mosaico anterior es 00000000 . Entonces su mosaico que va de izquierda a derecha (o de derecha a izquierda) es así:
El código de byte para ese mosaico es 10001000 , o 136. Como otro ejemplo, veamos una intersección de tres vías:
El código de byte para ese mosaico es 10101000 .
Probablemente veas a dónde voy. Establece posiciones de bit en el byte que representa las conexiones. Esto es mucho mejor que tratar de hacer una gran cadena if / else que he visto antes. Cuando busque colocar un mosaico, examine los mosaicos a su alrededor y cree un byte en el camino. Establezca 1 para las fichas que tienen carreteras (o lo que sea que desee conectar) y 0 para las fichas que no. Cuando haya terminado, tendrá el código de bytes para el mosaico exacto que necesita.
Tenga en cuenta que al crear los activos puede reutilizar muchos de ellos simplemente girando y asignándole el código de byte correcto.
EDITAR : imágenes actualizadas para ser menos horrible. Sí, esos son mejores que antes.