10 CLS :WAIT 0:CLEAR :LINE (X,12)-(239,18),BF:LINE (Y,21)-(239,27),BF 20 LOCATE 1:PAUSE "READY ";:PRINT "GO!" 30 K$=INKEY$ 40 IF K$="" THEN LINE (X,13)-(X,17),R:X=X+1 50 IF X>239 THEN W=2:GOTO 90 60 IF K$<>"" THEN LINE (Y.22)-(Y,26),R:Y=Y+1 70 IF Y>239 THEN W=1:GOTO 90 80 GOTO 30 90 BEEP 1:LOCATE 25,0:WAIT :PRINT W;"P WIN!":GOTO 10 |
まず、対戦相手を用意します。お互いどちらが1Pでどちらが2Pかを事前に決めておきます。RUNをするとゲーム開始とともにゲージが2本現れますが、画面上の方が1Pのエネルギーゲージ、下の方が2Pのエネルギーゲージとなっています。1Pもしくは2Pのどちらかがキーを押しているときは2Pのゲージが減り、1P、2Pの両者がキーを押しているもしくはキーが押されていないときは1Pのゲージが減り、先にゲージが0になった方が負けというゲームです。使うキーは1P、2Pともにどのキーでも構いません。[RETURN]でリトライができます。 また、このゲームではハンディキャップ機能を備えています。10行のCLEARの後にX=10をつければ1Pに10ポイントのハンデ、「Y=20」とすれば2Pに20ポイントのハンデを付けることが可能になります(ハンデは1P、2Pともに1〜238の範囲で設定可能) なお、同時キー入力を行ってないために2Pには極悪非道技がありますがそれは使わないようにしましょう(笑) |
10 CLS :WAIT 0:CLEAR :LINE (X,12)-(239,18),BF:LINE (Y,21)-(239,27),BF 20 LOCATE 1:PAUSE "READY ";:PRINT "GO!" 30 K$=INKEY$ 40 IF K$="" GCURSOR (X,18):GPRINT "82":X=X+1:IF X>239 LET W=2:GOTO 70 50 IF K$<>"" GCURSOR (Y,27):GPRINT "82":Y=Y+1:IF Y>239 LET W=1:GOTO 70 60 GOTO 30 70 BEEP 1:LOCATE 25,0:WAIT :PRINT W;"P WIN!":GOTO 10 |
PART4に続く
PART 1 なぜBASICを高速化するのか
PART 2 効率的な高速化を行うためには
PART 3 BASICの高速化とは
PART 4 どうやったらBASICが高速化できるのか
PART 5 アルゴリズムの見直し
PART 6 メインルーチンの軽量化
PART 7 表示を高速化
PART 8 IF文をうまく使う
PART 9 「BASICだから遅い」は言い訳の言葉