Просто используйте поиск в ширину (BFS).
Это дает вам карту, показывающую, сколько шагов требуется, по крайней мере, чтобы добраться до каждого свободного поля на вашей карте из (12,12).
Затем вы можете заставить своих NPC перемещаться назад на поле за полем назад от (0,0) в направлении одного из полей с наибольшим номером, меньшим, чем у поля, на котором они в данный момент стоят, на основе случайное решение.
Таким образом, вы получите один из самых коротких путей, по которому вам нужно будет просто пропустить своих неигровых персонажей.
Затем вы можете добавить дополнительную рандомизацию, чтобы они время от времени совершали обход, если вы хотите более непредсказуемого поведения - то есть заставляете их иногда выбирать неоптимальное следующее поле на основе случайного решения.
А потом пойти и потратить некоторое время на один из многочисленных блогов по разработке игр - например, google
.
разработка игр в ширину
разработка игр a-star
(a-star - более сложный алгоритм поиска пути)
Таким образом, вы сможете многое узнать об этих вещах - статьи в Википедии иногда довольно трудно понять без необходимого математического образования, поэтому я предлагаю поискать специфический контент для разработки игр.