я не специалист в этом вопросе. как пишут ИИ - не имею представлений. общий принцип вероятно должен следовать из теорий оптимального управления.
могу только попытаться приоритеты расставить на некоторые случаи жизни
затраты денег наверно стоит осуществлять так. не более K1 тратить на здания и не более K2 тратить на войско, где К1 и К2 - это приоритеты. К1+K2=1 и K1>K2. ну скажем 0,55 и 0,45. если не хватает ресурсов на постройку приоритетного здания (об том ниже), а в поле зрения есть шахта, охраняемая войском, которое слабее (хероус кста выдает опасность соперника по пятибальной шкале: очень низкая/// низкая/// средняя/// высокая/// без шансов), то героя направить туда. если же войско, охраняющее шахту сильнее, то K2+0.1 к примеру.
приоритеты в строительстве: прирост населения N1, прирост денег N2, улучшение населения N3, все остальное N4. ну и N1>N2>N3>N4
перемещение по карте. ходить по дороге M1 или по пересеченной местности M2. M1+M2=1 и M1>M2.
если в пределах досягаемости героя есть шахта, то M2+1/S, где S - кол-во шагов, которое нужно совершить выйдя за пределы дороги. если для постройки приоритетного здания не хватает ресурсов этой шахты и если войско охраняющее шахту слабее, то M2+0.3.
и тд.
ну и плюс несколько логических цепочек вписать. вроде этой: если удается построить в неделю несколько зданий для роста существ - хорошо. если это здание только одно, то... если удается успеть построить здание для роста денег так, чотбы после его постройки успеть в эту неделю построить то здание для роста существ, то строим строго здание для роста денег.
если денег на все войско не хватает, то выходить из своего города по направлению к городу противника так, чтобы успеть строго в последний день недели.