敵弾アルゴリズム1~4
  移動方向をcmx(i),cmx(i)に入れて返します
  キャラを自己消去させる時はkillf=-1のフラグを立てて返します 

自分弾アルゴリズム
1400 algo1:
1410 d1=bg_get(cx(i)+7,cy(i)+7,0)  進行方向BG読んで
1420 if d1=4 then bg_put cx(i)+7,cy(i)+7,0   壊れる壁ならBG壁書きかえ
1430 if d1>2 then killf=-1   壁全般なら自己消滅
1440 return
1450 '
敵キャラ1アルゴリズム(転がる玉)
1460 algo2:
1470 if sp_bghit(i,0,3)=2 then cmy(i)=0 else cmy(i)=cmy(i)+0.3   下のBG読んで床じゃないなら落下運動
1480 sp_margin i,7:if sp_bghit(i,cmx(i)*7,0)=2 then cmx(i)*=-1   進行方向壁なら方向反転
1490 sp_margin i,2   sp_marginで読み込み位置調整、最後戻しておく
1500 return
1510 '
敵キャラ2アルゴリズム(浮遊)
1520 algo3:
1530 if cdt(i)<0 then  一定カウントで方向転換
1540 if rnd(1)>0.2 then  20%確率で動作振り分け(移動か停止)
1550 d1=irnd(240)+8-cx(i)  移動、乱数で移動目標決定
1560 d2=irnd(200)+16-cy(i)
1570 k=sqr(d1^2+d2^2+1)  三平方の定理で移動量計算
1580cmx(i)=d1/k:cmy(i)=d2/k:cdt(i)=k
1590 else
1600cmx(i)=0:cmy(i)=0:cdt(i)=irnd(100)+1   一定カウント停止
1610 endif
1620 endif
1630 cpt(i)=16+(cdt(i) mod 20)\4   アニメーション 4フレームおき
1640 cdt(i)-=1   減数カウント
1650 if rnd(1)<0.002andbc<35thenbc+=1:nn=bc:nx=cx(i):ny=cy(i):na=5:gosub cmake:  乱数で弾を撃つ
  bcを+1してnnに代入、座標nx,nyとnaにキャラのアルゴリズム5(敵弾)入れてcmake:を呼ぶ
1660 return
1670 '
爆発アルゴリズム
1680 algo4:
1690 cdt(i)+=1   カウントして
1700 if cdt(i) mod 4=0 then cpt(i)+=1   4回に一回パターンを1変化させる
1710 if cdt(i)>19 then killf=-1   20カウントで自己消滅
1720 return
1730 '