PC-E500シリーズ用

SENGOKU GAME


このゲームはセンゴクチョウカンを操作してファイル流出をしようとするsengoku38[法律]ミサイルを使ってやっつけるゲームです。


プレイ前に

 このゲームではOPASが使用されています。オールBASICですがグラフィックデータ用としてBFAE6h以降の282バイトのマシン語エリアを確保してください。
 確保の仕方が分からない人は下記のようにしてください。

POKE &BFE03,&1A,&FD,&B,&1A,1,0 [RETURN]
CALL &FFFD8 [RETURN]

プレイ方法

 最初にゲームを開始するときにはRUN *SET [RETURN]でグラフィックデータ作成をします。2回目からは普通にRUN [RETURN]でOKです。

 タイトル画面で何かキーを押すとスタートです。BEEP OFF(音無し)でプレイする場合はタイトル画面で[S]を押してスタートしてください。

 センゴクチョウカンは[8][2]で上下に動作し[SPACE]でミサイルを発射します。ただし、ミサイルは同時に1発までしか放てず、[8][2]を押しながらだとミサイルを発射できないので注意してください。
 sengoku38がセンゴクチョウカンの足元の位置までたどり着いたらゲームオーバーです。
 ゲームオーバー画面で[RETURN]を押すとタイトル画面に戻ります。
 ゲーム終了後は[CTRL]+[+/-]としてフォントを元に戻してください。

 なお、タイトル画面においてスタートするときのセンゴクチョウカンの位置でsengoku38の動作パターンが決定されます。同じ位置で開始すると同じパターンになるためスコア争いで有利となる場所を探し出してください。
 スコアは自分の近くで倒すほど高得点になります。敵の速度は徐々に速くなっていきます。ミサイルの無駄打ちはやめ敵のパターンを見切って打つのが高得点のコツです。反射神経よりも判断力が要求されます。
 1000点を超えるとかなり難しくなり2000点を超えると敵の動きがあらかじめ分かってない限り厳しいでしょう。

プログラムリスト1
10 POKE &BFC8A,&,&FB,&B:POKE &BFC93,&80,&FA,&B:OPEN "SCRN:"FOR OUTPUT AS #1
20 CLEAR :DIM A(3),B(3):FOR I=128TO 147:X$=X$+CHR$ I:NEXT
30 CLS :WAIT 0:A=RND -1:LOCATE 9:PRINT "アイ SENGOKU GAME アイ":LOCATE 5,2:PRINT "PUSH ANY KEY   SILENT GAME=[S]"
40 FOR I=0TO 37:FOR J=0TO 3:B(J)=RND 0*3+1:NEXT :LOCATE I,3:WAIT 5:PRINT " ウエ":K$=INKEY$ :IF K$=""NEXT :GOTO 30ELSE B=-(K$<>"S"):CLS :WAIT 0:LOCATE 25:PRINT "SCORE"
50 H=RND 4-1,A(H)=A(H)+B(H):LOCATE 0,H:POKE &BFC8A,A(H):PRINT #1,X$:IF A(H)>108THEN 110
60 LOCATE 0,W:PRINT #1,"  ":LOCATE 0,Y:PRINT #1,"ウエ"
70 K$=INKEY$ ,W=Y,Y=(K="8")*(Y>0)+(K="2")*(Y<3),S=S+1
80 IF K$=" "IF F=0BEEP B,250,5:F=1,G=Y
90 IF F THEN F=F+1:LOCATE F,G:PRINT #1," アイ":IF A(G)>102-F*6BEEP B,100,9:BEEP B,39,20:A(G)=0,B(G)=1+RND 0*(3+S/50),B(G)=RND 0*(3+S/50),S=S+100-F*5,F=0
100 LOCATE 25,1:PRINT USING "#####";S:GOTO 50
110 FOR I=10TO 250STEP 5:BEEP B,I,5:NEXT :LOCATE 5,1:WAIT :PRINT " GAME OVER ":GOTO 20
120 *SET FOR I=0TO 23:POKE &BFAE6+I,VAL ("&"+MID$ ("C5006A5FEA14FB045AFF5A5E003030F8F427396FF5B23030",I*2+1,2)):NEXT :A=0:FOR I=0TO 2:A=A+PEEK (&BFC87+I)*256^I:NEXT
130 Z$="          sengoku38  ":FOR I=1TO LEN Z$:B=ASC MID$ (Z$,I,1):FOR J=0TO 5:C=PEEK (A+B*6+J):POKE &BFAF4+I*12+J*2,C,C:NEXT :NEXT :GOTO 20

使用テクニック

 120〜130行が文字倍角データ生成ルーチンです。PC-E500系はROMバージョンによってフォントが格納されているアドレスが異なりますが120行でその使用している本体のフォント格納アドレスを求め内蔵フォントデータを利用して倍角データを生成しています。
 この生成された倍角のグラフィックデータ(スペース込みで252バイト)をOPASを使い高速表示しています。動作速度は約7.4cpsなのでポケコンBASICのゲームとしてはまぁまぁ快適な速度だと思います。

改造点

 130行のZ$の文字を好きな文字に変えると敵が変わります。(ただし名前部分は9文字以内でデータの先頭10文字およびトータルで21文字になるようにデータの後にスペースを入れる)
 この変更をした場合はRUN *SET [RETURN]でグラフィックデータを生成しなおしてください。



 改造をしたのが次の「SENGOKU GAME Another version」です。
 こっちの方はsengoku38を操作してセンゴクチョウカン[Y○uTube]ミサイルを使ってやっつけるゲームです。

 敵の名前とミサイルのグラフィックが変わった以外は上記のものと同一のゲームです。

プログラムリスト2
10 POKE &BFC8A,&,&FB,&B:POKE &BFC93,&80,&FA,&B:OPEN "SCRN:"FOR OUTPUT AS #1
20 CLEAR :DIM A(3),B(3):FOR I=128TO 147:X$=X$+CHR$ I:NEXT
30 CLS :WAIT 0:A=RND -1:LOCATE 9:PRINT "アイ SENGOKU GAME アイ":LOCATE 5,2:PRINT "PUSH ANY KEY   SILENT GAME=[S]"
40 FOR I=0TO 37:FOR J=0TO 3:B(J)=RND 0*3+1:NEXT :LOCATE I,3:WAIT 5:PRINT " ウエ":K$=INKEY$ :IF K$=""NEXT :GOTO 30ELSE B=-(K$<>"S"):CLS :WAIT 0:LOCATE 25:PRINT "SCORE"
50 H=RND 4-1,A(H)=A(H)+B(H):LOCATE 0,H:POKE &BFC8A,A(H):PRINT #1,X$:IF A(H)>108THEN 110
60 LOCATE 0,W:PRINT #1,"  ":LOCATE 0,Y:PRINT #1,"ウエ"
70 K$=INKEY$ ,W=Y,Y=(K="8")*(Y>0)+(K="2")*(Y<3),S=S+1
80 IF K$=" "IF F=0BEEP B,250,5:F=1,G=Y
90 IF F THEN F=F+1:LOCATE F,G:PRINT #1," アイ":IF A(G)>102-F*6BEEP B,100,9:BEEP B,39,20:A(G)=0,B(G)=1+RND 0*(3+S/50),B(G)=RND 0*(3+S/50),S=S+100-F*5,F=0
100 LOCATE 25,1:PRINT USING "#####";S:GOTO 50
110 FOR I=10TO 250STEP 5:BEEP B,I,5:NEXT :LOCATE 5,1:WAIT :PRINT " GAME OVER ":GOTO 20
120 *SET FOR I=0TO 23:POKE &BFAE6+I,VAL ("&"+MID$ ("13FC13E48AEAF4C0CE68EEA0003030F8F427396FF5B23030",I*2+1,2)):NEXT :A=0:FOR I=0TO 2:A=A+PEEK (&BFC87+I)*256^I:NEXT
130 Z$="          センコクチョウカン  ":FOR I=1TO LEN Z$:B=ASC MID$ (Z$,I,1):FOR J=0TO 5:C=PEEK (A+B*6+J):POKE &BFAF4+I*12+J*2,C,C:NEXT :NEXT :GOTO 20
※10行〜110行はリスト1と同一

※注意
このゲームはフィクションであり実在の人物とは一切関係ありません。


RETURN

inserted by FC2 system