EDITAR: Envolvió el mapa de ejemplo en un bloque de código para que el formato sea correcto.Encontrar vecinos adyacentes en una cuadrícula hexagonal
Ok, estoy tratando de escribir un algoritmo A * extremadamente simple sobre una cuadrícula hexagonal. Entiendo, y puedo hacer la parte A *. De hecho, mi A * funciona para cuadrículas cuadradas. Lo que no puedo envolver mi cerebro es encontrar vecinos con hexágonos. Aquí está el diseño de la rejilla heagonal
0101 0301
0201 0401
0102 0302
0202 0402
etc, etc
lo tanto, lo que necesito ayuda está escribiendo una clase hexagonal que, dado que es coordenadas hexagonales, puede generar una lista de vecinos. Tiene que ser capaz de generar vecinos que se "caigan" de la red (como 0000 o 2101 en una grilla de 20x20) porque así es como mis pistas A * en varios mapas colocados uno al lado del otro. Así que algo que funcione con este fragmento de código:
planeta = Hex ('0214') de impresión (planet.neighbors()) [ 'Hex 0213', '0215 Hex', 'Hex 0115', 'Hex 0315 ',' Hex 0116 ',' Hex 0316 ']
que he proporcionado una respuesta a esta misma pregunta se encuentra aquí: http://stackoverflow.com/a/15524441/2135355 –