• タイトル
    UFOキャプチャー(電子工作マガジン2018年SUMMER号掲載)

  • 開発環境
    IchigojamBASIC1.2.1

  • 内容
    UFOを操作してキャラクタをキャプチャ(捕獲)するゲームです。
  • UFOcapture
  • 遊び方
    UFOの横方向と縦方法の移動位置を入力するとUFOがキャラクタを捕獲します。
    キャラクタは1度に7個まで捕獲することができます。
    捕獲したキャラクタは画面右の捕獲エリアに並べて保管されます。
    この時、同じキャラクタを3つ以上並べると並んだキャラクタが消え、得点が得られます。
    多数消し、連鎖消しにより高得点が得られます。

  • 操作方法
    「ヨコ:」と表示されたら、UFOの横方向の移動位置(画面上部の数字)を入力しEnterを押します。
    「タテ:」と表示されたら、UFOの縦方法の移動位置(画面左右の数字)を入力しEnterを押します。
    するとUFOが移動してキャラクタを捕獲します。

  • プログラムのしくみ
    変数表
    [0]~[48]キャラクタの配置
    [50]~[56]捕獲したキャラクタ
    I,Jループ用一時変数
    XUFO移動横位置
    YUFO移動縦位置
    C捕獲配列のキャラクタコード
    D捕獲配列の次のキャラクタコード
    R捕獲配列の同一キャラクタ連続数
    Z捕獲している数
    L連鎖フラグ
    A表示キャラクタの増分
    Sスコア

    各行の処理
    1行初期画面表示
    2行UFO移動位置の入力
    3行UFO左移動、捕獲アニメーション、捕獲配列へキャラを転送
    4行捕獲ビーム消去、UFO右移動、捕獲配列のキャラ連続チェック
    5行最上段のキャラチェック、キャラせり上げ、最下段補充
    6行ループ
    7行1段補充&描画
    8行連続キャラ消し、加点
    9行捕獲エリア描画

  • プログラムの具体的な入力方法
    プログラムリスト中の「□」はスペース1個です。(例:「□□□」はスペース3個)
    カードの枠線および、UFOは「左ALT+(SHIFT)+キー」で入力します。
    左ALT+SHIFT+H
    左ALT+SHIFT+I
    左ALT+SHIFT+Q
    左ALT+SHIFT+R
    左ALT+0(ゼロ)
    左ALT+8
    左ALT+1

  • プログラムの改造
    現時点で空きメモリが0バイトなので改造は難しいと思いますが、1行目の枠線表示をしないようにすれば、メモリに空きができるので改造がしやすくなります。
    7行のRND文で表示キャラクタを決めています。キャラクタの種類を増減したい場合は、RND文の"6"を増減してください。別のキャラクタを表示するようにするには"235"を変更してください。
    UFOの移動アニメーション速度を変更したい場合は、WAIT文(5ヶ所)の数値を変更してください。

  • プログラム
    1 cls:clv:fori=0to6:j=i*2:LC0,j+6:?i;"│":lc17,j+6:?"│";i,"□□│□□□│":?"□│":lc17,j+7:?"│□□□□□│□□□│":lcj+3,0:?i:gsb7:next:lc0,19:?"□└---------------┘□□□□□└---┘"
    2 lc20,0:?"SCORE:";s:lc0,20:?chr$(12):input"ヨコ:",x:input"タテ:",y:x=abs(x%7):y=abs(y%7)
    3 fori=10toxstep-1:lci*2+4,2:?"□□□":lci*2+2,2:?"←○→":wait9:next:lcx*2+3,4:?"^":fori=0toy:lcx*2+3,i*2+6:?"^":wait9:next:fori=yto0step-1:c=[i*7+x]:ifc[56-z]=c:[i*7+x]=0:z=z+1
    4 lcx*2+3,i*2+6:?chr$(0):wait9:next:lcx*2+3,4:?chr$(0):fori=xto11:lci*2,2:?"□□□":lci*2+2,2:?"←○→":wait9:next:gsb9:c=[50]:r=0:l=0:fori=1to7:d=[50+i]:ifd=cr=r+(c!=0)elsec=d:gosub8:r=0
    5 next:fori=0to6:i=i+[i]:next:ifi<7fori=0to6:forj=0to6:[i*7+j]=[i*7+j+7]:lcj*2+3,i*2+6:?chr$([i*7+j]):next:next:gsb7
    6 goto2
    7 forj=0to6:[i*7+j]=rnd(6+a)+235:lcj*2+3,i*2+6:?chr$([i*7+j]):next:rtn
    8 ifr<2rtnelse:forj=i-1to0step-1:[50+j]=[49+j-r]*(j-r>0):next:i=0:z=z-r-1:s=s+r*r*5/20*10+l*20:l=1:a=s/100
    9 forj=0to6:lc25,j*2+6:?chr$([50+j]):wait5:next:if![49]rtnelselc25,4:?chr$([49]):lc0,21:?chr$(12);"GAME OVER"
    

    MixJuiceでのダウンロードURLは下記になります。
    UFOcapture http://tagiyasoft.blog.jp/UFOcapture.bin

    以下のように入力してD/Lしてください。
    NEW
    ? MJ GET http://tagiyasoft.blog.jp/UFOcapture.bin
    

    ブラウザでD/LしてIchigoJamに転送する場合は、通信ソフトでバイナリ送信をしてください。
    (例:TeraTermの場合は、メニューの[ファイル]-[ファイル送信]で当該ファイルを送信します)