プチコンがリリースされたよ

学生の頃電脳研究会だったんだけど、BASIC経験者の奴が毎日のように作ってた(10分くらいで作れるから保存してなかった。後にバージョンアップしはじめたときは保存してたけど)奴で、昔を懐かしんで作ってみた。
1Pは↑で左折↓で右折、2PはXで右折Bで左折かな(テストしてない)。黒いとこ以外に突っ込むとゲームオーバーです。


俺はBASICはほぼ初心者なので作法とか変数名とかアレコレがBASICっぽくないかも。
あと、メモリとか気にしなくていいので富豪っぽいテクニカルさの無いコードになってます。


ちょっと工夫が必要だったのは@P1ICHKの最初と最後あたり、前回と入力が同じ場合は弾かないと酷いことになる。


ちなみに、空行いれて84行で、軽い動作確認を挟みながらで入力には20分くらいかかった。この程度なら下画面で入力するのは意外と苦にならないと思う。
まあ、キロバイト単位になったら厳しいんだろうけど。

GOSUB @_INIT
@_MAIN
KY=BUTTON()
GOSUB @P1ICHK
GOSUB @P2ICHK
GOSUB @P1ACHK
GOSUB @P2ACHK
GOSUB @GOVRCHK
GOSUB @P1PNT
GOSUB @P2PNT
GOSUB @WAIT
GOTO @_MAIN

@_INIT
CLS
GCLS
GBOX 1,1,254,190,250
P1A=TRUE
P2A=TRUE
P1PX=20
P1PY=95
P2PX=230
P2PY=95
P1D=1
P2D=3
RETURN

@P1ICHK
IF(KY AND 3)== P1KY THEN RETURN
IF(KY AND 1)== 1 THEN P1D=P1D-1
IF(KY AND 2)== 2 THEN P1D=P1D+1
IF P1D == -1 THEN P1D=3
IF P1D ==  4 THEN P1D=0
P1KY = KY AND 3
RETURN

@P2ICHK
IF(KY AND 96)== P2KY THEN RETURN
IF(KY AND 64)== 1 THEN P2D=P2D+1
IF(KY AND 32)== 2 THEN P2D=P2D-1
IF P2D == -1 THEN P2D=3
IF P2D ==  4 THEN P2D=0
P2KY = KY AND 96
RETURN

@P1ACHK
IF P1D==0 THEN P1PY=P1PY-1
IF P1D==1 THEN P1PX=P1PX+1
IF P1D==2 THEN P1PY=P1PY+1
IF P1D==3 THEN P1PX=P1PX-1
IF GSPOIT(P1PX,P1PY) != 0 THEN P1A=FALSE
RETURN

@P2ACHK
IF P2D==0 THEN P2PY=P2PY-1
IF P2D==1 THEN P2PX=P2PX+1
IF P2D==2 THEN P2PY=P2PY+1
IF P2D==3 THEN P2PX=P2PX-1
IF GSPOIT(P2PX,P2PY) != 0 THEN P2A=FALSE
RETURN

@P1PNT
GPSET P1PX,P1PY,10
RETURN

@P2PNT
GPSET P2PX,P2PY,20
RETURN

@GOVRCHK
IF P1A==FALSE THEN PRINT "P1 DEAD!"
IF P1A==FALSE THEN GOTO @_END
IF P2A==FALSE THEN PRINT "P2 DEAD!"
IF P2A==FALSE THEN GOTO @_END
RETURN

@WAIT
FOR W=0 TO 1000
NEXT
RETURN
@_END
END