電子工作ネタが最近多かったので、久々にプログラムネタです。
以前にカタルーニャのレドクスくん氏が、パックマン風ゲームを公開していました。
これが面白かったので、私も似たようなゲームを作ってみました。
カーソルキー上下左右で自キャラを動かして、エイリアンに捕まらないようにドットを消してください。3回ミスするとゲームオーバーです。
「ア」〜「ン」まで全45ステージを、キミはクリアできるか?
表示サイズを小さく収めたので、SPI液晶でも遊べます。
プログラムリスト
1 CLV:R=2:T=-1 2 T=(T+1)%45 3 CLS:A=(T%45)+177:FORC=0TO7:D=PEEK(A*8+C):LC1,C 4 FORB=0TO7:?CHR$(D&128>0);:D=D<<1:NEXT:NEXT 5 X=0:Y=0:GSB31:P=9:Q=7:GSB32 6 L=0:FORJ=0TO7:FORI=0TO9:IF!SCR(I,J)LCI,J:?CHR$(165);:L=L+1 7 NEXT:NEXT:IFT=15||T=42LC6,1:?CHR$(165):L=L+1 8 LC11,0:?"STAGE":LC11,1:?T+1:GSB29:GSB30:G=0:W=0:H=0:I=0 9 W=(W+1)*(W<3):IFWGSB17 ELSEGSB24 10 IF!LGOTO2 11 IFGGSB16:IF!RGOTO13 ELSEGOTO3 12 WAIT5:GOTO9 13 LC4,7:?"GAME OVER";:WAIT60:CLK 14 IF!INKEY()CONT 15 RUN 16 BEEP30,30:R=R-1:GSB30:WAIT60:RTN 17 U=X-BTN(28)+BTN(29):V=Y-BTN(30)+BTN(31) 18 H=SCR(U,V):IFU<0||U>9||V<0||V>7||H=1RTN 19 LCX,Y:?CHR$(0);:X=U:Y=V:GSB31 20 IFH=165S=S+1:GSB29:L=L-1 21 IF!LBEEP10,30:WAIT60:RTN 22 IFH=237G=1 23 RTN 24 D=X-P:E=Y-Q:Z=RND(2):U=P+((D>0)-(D<0))*Z:V=Q+((E>0)-(E<0))*(1-Z) 25 J=SCR(U,V):IFU<0||U>9||V<0||V>7||J=1U=P:V=Q:J=I 26 LCP,Q:?CHR$(I);:P=U:Q=V:GSB32:IFJ!=237I=J 27 IFI=251G=1 28 RTN 29 LC11,3:?"SCORE":LC11,4:?S:RTN 30 LC11,6:?"LEFT";R;:RTN 31 LCX,Y:?CHR$(251);:RTN 32 LCP,Q:?CHR$(237);:RTN
カタカナ45文字のうち、「タ」と「ロ」はそのままだと閉領域ができてしまってクリアできないので、穴を開ける例外処理をしています(7行目)。
Web版
こちらをクリック。「VIDEO 3」で拡大表示しています。
攻略のヒント
アクションゲームと言うよりはパズルゲームに近く、戦略が大事です。
- エイリアンは馬鹿正直に追いかけてくるので、文字の角や袋小路に誘い込んで動きを封じましょう。
- 時にはエイリアンを広い場所へ誘い出して、脇をすり抜けて入れ替わりましょう。
改造
エイリアンの動きは遅めにしています。「これじゃヌルい!」と思う方は、9行目の「(W<3)」を、「(W<2)」や「(W<1)」に変えてください。エイリアンの動きが速くなります。