障害物とか地形の異動量とかがある場合の最短距離の求め方は、
A*サーチアルゴリズムとかを参考にすべし。
たとえば↓。探せばいっぱいあるはず。
http://gamdev.org/w/?%5B%5BAStarAlgorithmTutorial%5D%5D

どの行動を取れば一番いいかについては、可能な行動を全て列挙し、
それぞれに点数をつけ、一番点数の高かった行動を取らせるという方法が一般的。
この点数をつける評価関数を返ることによって、敵の強弱、特徴を出すことが出来る。

どうやって評価関数を作るかは、ゲーム内容による。一般的にこうすればよいとかいった
マニュアルは無い。行動の選択肢が非常に多くある場合、どう刈り取るかも問題となる。

というか、AIの日本語で書かれた入門資料ってあるのかな?

参考リンク:
http://ai-depot.com/
http://www.gameai.com/
http://www.aiwisdom.com/index.html
http://www.ai-junkie.com/ai-junkie.html
http://www-cs-students.stanford.edu/~amitp/gameprog.html#ai