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