>>88見させれいただきましたで
int gMap[HEIGHT][WIDTH];
で事象の全て管理してるんですよね?
ちょっと言い方違うかな、前回の分を保持してるものを使うのは
上記だけですよね?
そしてこのゲームは、敵の移動はしない時があるが自分は必ずする。

これだとゲーム性として緊張感とか戦略性が薄いので
(勘違いしないでくださいね次の課題のためにステップアップ
できるところをわざと問題で作って、それをあなたが次の問題だせるように
解いてくれたってことですんで)
次の課題は敵は動かない時は次回に移動量を貯めこめる
移動は同じく単一方向のみで溜め込んだ分は使い切る(範囲制限は今のまま)
でどうでしょ?
これで管理のしかたが変わる修正しないといけない問題になると思うんやけど

問題の出し方としてソクラテスの問答法をしてる感じなんやけど
こういうやり方ではだめかな?