Non è un discorso semplice...

Devi analizzare bene innanzitutto il tipo di agente, deduco che si possa inziiare a pensare ad un agente con riflessi...

Poi prima ancora di pensare al codice, ti servirebbe iniziare a pensare a:

Spazio degli stati;

Stato iniziale;

Stato Obiettivo;

Insieme di operazioni ammissibili;

Algoritmo di ricerca;

Io ti suggerisco un A* scegli la tue euristica e calcoli con quella i tuoi cammini.

Essenzialmente quindi, il tutto si basa su un Agente che, compie delle azioni nel mondo in cui si trova a seconda di percezioni che esso riceve.

Le strutture dati usate sono o Alberi (per algoritmi di ricerca in profondità, in ampiezza, limitata A*) o sono anche dei Grafi, dipende solo da quello che devi fare.

Per una mappa 2D appunto, un algoritmo A* è quello che potrebbe bastare