SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

カタカナアタック

電子工作ネタが最近多かったので、久々にプログラムネタです。
以前にカタルーニャのレドクスくん氏が、パックマン風ゲームを公開していました
これが面白かったので、私も似たようなゲームを作ってみました。

カーソルキー上下左右で自キャラを動かして、エイリアンに捕まらないようにドットを消してください。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)」に変えてください。エイリアンの動きが速くなります。