地底の村を守るために戦うゲームです。10分程度の暇つぶしになるように作りました。
プログラムファイル(driller.wb)のダウンロードはこちら。パソコンでダウンロードする場合はこちらがいいでしょう。ダウンロードしたファイルをW-ZERO3にコピーしてください。
W-ZERO3単体でダウンロードする場合はこちらがいいでしょう。ただし、ファイルを解凍するツール(GSFinderなど)が必要です。
プログラムファイルをLZH形式で圧縮したものはこちら。
ZIP形式で圧縮したものはこちら。
更新履歴
■Ver.1.3→1.4 (2007/8/25)
![]() |
♀……自機。カーソルキーで上下左右4方向に移動します 〜……敵(ヘビのつもり) @……気絶して丸まったヘビ δ……爆弾 画面最下部……地底の村。ここにヘビが到達すると負けです アクションキー(◎の中央)を押すと、一時停止します。なにかキーを押すと再開します |
自機の移動には多少の制限があります。足場のない空間には進むことができません。
ヘビは高いところから低いところに落下すると、一定時間気絶します。
気絶したヘビに対して自機を進めると、ヘビをやっつけることができます。
爆弾に自機かヘビが触れると、爆発して大穴が開きます。しかし、どちらも死にません。
ヘビを全部やっつけると次の面に進みます。ヘビと爆弾の数が徐々に増えます。
勝利条件(コンプリート)はありません。自機が死ぬまで続きます(笑)。
![]() |
ゲームを起動するときは、ソフト2キー(右側)を押してワンべぇのMENUを出します。Runコマンドからdriller.wbを選択してください。ワンべぇの終了はExitで。 |
| 100 '----------メインループここから 200 if H<0 then H=0 210 waitms H:H=W:A=0:B=0 220 j=screenpeek(X,Y) 230 q=screenpeek(X-1,Y):e=screenpeek(X+1,Y) 240 f=screenpeek(X-1,Y+1):k=screenpeek(X+1,Y+1) 250 z=screenpeek(X,Y+1) 260 if j=-162 or j=-224 then @(900)=X:@(901)=Y:gosub 3000 '自機死亡 270 if R=1 then goto 3200 'ゲームオーバー 300 if X=0 then q=8251 310 if X=22 then e=8251 320 if key(38) then B=-1 330 if q=12288 and screenpeek(X-1,Y-1)=12288 then B=0 '足場がないと上には行けない 340 if e=12288 and screenpeek(X+1,Y-1)=12288 then B=0 '足場がないと上には行けない 350 if key(40) then B=1 360 if key(37) then A=-1:B=0 370 if key(39) then A=1:B=0 375 if key(134) then waitms 500:d=waitkey 380 if q=12288 and f=12288 and z=12288 then A=0:B=1 '足場がないと落下する 390 if e=12288 and k=12288 and z=12288 then A=0:B=1 '足場がないと落下する 400 if A=0 and B=0 then goto 600 410 if X+A<0 or X+A>22 then goto 600 420 if Y+B<0 or Y+B>23 then goto 600 430 m=screenpeek(X+A,Y+B) 440 if m=-224 then fcolor 255,0,0:locate X+A,Y+B:print "*";:gosub 2000 '移動先は気絶中の敵 450 if m=-162 then @(900)=X+A:@(901)=Y+B:gosub 3000 '移動先は正気の敵 460 if m=948 then @(900)=X+A:@(901)=Y+B:gosub 6500 '移動先は爆弾 500 locate X,Y:print " "; 510 fcolor 255,255,255 520 X=X+A:Y=Y+B:H=H-10 530 locate X,Y:print "♀"; 540 if T=V+1 then goto 4000 600 '敵のターン 610 gosub 1000 900 goto 100 990 '----------メインループここまで |
左は、コードの一部抜粋。作りながら仕様を考えていったので、つぎはぎです(^^;。注釈をたくさん入れたので、改造は容易でしょう。 |
このゲームは、大昔のI/O誌に掲載されていたMZ-80用のゲーム(たしか「地底最大の作戦」という名前)にインスパイアされて作ったものです。「地底最大の作戦」は僕が初めて打ち込んだゲームプログラムであり、これを改造するところからBASICを覚えました。遠い目〜。
うろ覚えの上に自分なりのアレンジを加えたので、元ネタとはあまり似ていません。元ネタのほうは画期的に面白かった気がするんだけどなぁ〜(笑)。
今回はリハビリを兼ねて作ってみたのですが、文字変数の名前が足りなくて困りました。最初は全部配列でやって、完成してから文字変数に置換すればよかった。コードの編集作業は母艦でやったほうが能率いいですが、通勤電車内プログラミングでは〇号テキストエディタを使用しました。
難易度の「簡単」と「難しい」の違いは一点だけです。敵が穴掘りモードに移行する条件が違います。
| 1190 if G=8251 and J=8251 and N=8251 then a=0:b=1:c=903:goto 1500 '周囲が※なら穴掘りモードに移行 1195 if @(700)=1 and G=8251 and (J=8251 or J=-162) and (N=8251 or N=-162) then a=0:b=1:c=903:goto 1500 '周囲が※や〜なら穴掘りモードに移行 |
1190行目が基本となる条件分岐です。ヘビの周囲3方向をチェックして、土に囲まれていたら行き場がないわけですから、穴掘りモードに移行します。1195行目が「難しい」の場合の追加の処理です。前述の条件に加えて、周囲3方向が土かヘビに囲まれていたら穴掘りモードに移行します。
たったこれだけですが、ゲームに与える影響はかなり大きいです。「簡単」の場合、ヘビを一箇所に集めて一網打尽にできますが、「難しい」の場合、ヘビを一箇所に集めるとたちまち穴掘りモードになるため、かえって危険です。つまり、「簡単」と「難しい」では、戦い方がまったく変わるのです。単に確率が高くなるというだけではありません。
同じ敵なのに戦い方がまったく変わる。これは「ゼビウス」の「アンドアジェネシス」から学びました。最初に出てくるアンドアジェネシスは、その攻撃に耐え抜いてから破壊するのがセオリーですが、2回目に出てくるヤツは、攻撃が激しすぎて耐えるのが困難です。だから「2回目は出てきたらすぐコアを破壊する」のがセオリーだと思います。←もちろん、上級ゲーマーは別でしょう。並ゲーマーの話です。
敵の動きの些細な違いで、ゲーム性が大きく変わる。それを体現した「ゼビウス」は画期的でした。