Em um jogo que estou desenvolvendo para um cliente, um conceito-chave de jogo envolve mover-se em um mapa. Nesse caso, os tamanhos e as formas e os de vários países são irrelevantes: a mudança de um país para um país adjacente conta como uma única etapa.
Estou tentando descobrir a melhor estrutura de dados para representar internamente as conexões entre os países. Para um determinado país, o jogo precisa saber quais países são adjacentes, para saber de que maneira os jogadores podem se mover e também para permitir que a IA do jogo traçar rotas, determinando possíveis caminhos de um país para outro. A AI também precisa avaliar o quão bem conectado um país está, não apenas com seus vizinhos imediatamente adjacentes, mas também com os vizinhos desses países, etc.
Eu descobri algumas possibilidades, mas elas parecem desajeitadas e ineficientes. Como a IA precisará calcular várias rotas possíveis para tomar boas decisões sobre seu movimento, "ineficiente" é altamente problemático.
Suspeito que esse seja um quebra-cabeça comum do CS e que exista uma solução comum, mas não consegui encontrar muita coisa pesquisando. Todas as sugestões são bem-vindas.