内容としてはサンプルプログラムを修正しながら
敵のアルゴリズムについて解説していこうと思います。
弱冠の変更点や修正もあるので再度セクション(プログラムの部分)毎に解説していきます。
今後サンプルも全ソースを掲載する事はしません。
セクション毎に解説および変更を行っていきたいと思います。

まずはメインセクション(MAIN)です。
このセクションはプログラムの開始部分であり、
大まかな全体の流れを作る部分です。
以前解説したようにプログラム全体の初期化と
ゲームを実行するために必要なゲームループを実現します。
このゲームループの中で実行される
ゲームのプレイヤや敵などのプログラムをタスクと呼びます。
このサンプルでは最初にGM_TASK(ゲームタスク)が初期化され
ゲームループで実行されています。

次はメインなどで必要な処理を行うシステムセクション(SYS)です。
今回以降ライブラリの作成をしていくので
ほとんどの部分はライブラリに統合されていきますが
ゲームとライブラリを結び付けるためにも少々この部分は必要となります。
今回の場合はシステムの初期化と
ゲームループの中で最低行わなければならない事が実行されています。
ここで以前はSYS_MAINを呼んでいましたが
少し分かりにくいのでシステムを呼び出すという意味で
SYS_CALLという名前に変更しているだけです。
システムコールの内容は依然と同等で
画面同期の処理とシステムカウンタの処理そしてキー入力の処理を行っています。
詳しい解説は以前の記事を参照してください。