いわゆるスカッシュ


カーソルキー(矢印キー)で下の棒を操作し、

ボールを跳ね返して下さい。

何回当てられるかチャレンジ!

ボールと棒が同じ速度なので、

ボールがやってくる場所を予測して移動する必要があり、

意外と難しく、ゲーム要素になっています。

 

0.9.4 以降では速く動作しますが、
むしろスカッシュらしく快適に操作できると思います。

 

MSX 版 で作っていたものを移植しています。

MSX ではスプライトが使えます。

一方 ichigoJam では文字で表示させているので、
描いて、消しての繰り返しです。

なので全然違うプログラムになっています。

左右がつながっていない等の違いがあります。

 

PanCake 版 もあります。


IchigoJam BASIC 0.9.9〜

1 'イワユル スカッシュ
10 CLS:LET X,1:LET Y,0
20 LC X,0:? CHR$(1);
30 LET X,X+1:IF X<>31 GOTO 20
40 LC 0,Y:? CHR$(1);
50 LC 31,Y:? CHR$(1);
60 LET Y,Y+1:IF Y<>23 GOTO 40
70 LET S,0:LET X,RND(29)+1
80 LET Y,1:LET N,1:LET P,10
90 LET M,1:IF X<16 LET M,-1
100 LC X,Y:? CHR$(232);
110 LC P-1,22
120 ? CHR$(P=1,1,1,1,P=28);
125 WAIT 5
130 IF Y=22 LC 11,23:END
140 IF X=1 LET M,1
150 IF X=30 LET M,-1
160 IF Y=1 LET N,1
170 IF Y<21 GOTO 210
180 IF (XP+3) GOTO 210
190 LET N,-1:LET S,S+1
200 LC 0,24:? "SCORE ";S;
210 LET I,INKEY()
220 IF (P>1)*(I=28) LET P,P-1
230 IF (P<28)*(I=29) LET P,P+1
240 LC X,Y:? " ";
250 LET X,X+M:LET Y,Y+N:GOTO 100

MixJuice ダウンロード ?"MJ GET 15J.IN/584

MicJack ダウンロード ?"MJ GKP 584

最近のバージョンや IchigoJam BASIC RPi などでは処理速度がはやくなり、操作しづらくなります。

BTN(LEFT)・BTN(RIGHT) に変更して押しっぱなしでも移動できるようにすると良いです。

210 '
220 IF (P>1)*(BTN(LEFT)) LET P,P-1
230 IF (P<28)*(BTN(RIGHT)) LET P,P+1

IchigoJam BASIC 0.8.9〜0.9.8

10 CLS:LET X,1:LET Y,0
20 LC X,0:? CHR$(1);
30 LET X,X+1:IF X<>35 GOTO 20
40 LC 0,Y:? CHR$(1);
50 LC 35,Y:? CHR$(1);
60 LET Y,Y+1:IF Y<>26 GOTO 40
70 LET S,0:LET X,RND(33)+1
80 LET Y,1:LET N,1:LET P,17
90 LET M,1:IF X<18 LET M,-1
100 LC X,Y:? CHR$(11);:LC P-1,25
110 ? CHR$(P=1);CHR$(1);CHR$(1);
120 ? CHR$(1);CHR$(P=32);
130 IF Y=25 LC 11,26:END
140 IF X=1 LET M,1
150 IF X=34 LET M,-1
160 IF Y=1 LET N,1
170 IF Y<24 GOTO 210
180 IF (X<P-1)+(X>P+3) GOTO 210
190 LET N,-1:LET S,S+1
200 LC 0,26:? "SCORE ";S;
210 LET I,INKEY()
220 IF (P>1)*(I=28) LET P,P-1
230 IF (P<32)*(I=29) LET P,P+1
240 LC X,Y:? " ";
250 LET X,X+M:LET Y,Y+N:GOTO 100

0.9.8 はキャラクターコードが変わっていますので、下記を変更して下さい。

100 LC X,Y:? CHR$(232);:LC P-1,25

解説

110〜120 は IchigoJam では PRINT 文を重ねて出力した方が速くなるので、

(厳密には LOCATE 等の処理が行われなくなる分速くなります。そのため2行にしています)

P=1 および P=32 の条件で壁か空白を描く事で処理を最適化しています。

正しい場合は 1 となり、CHR$(1) の ▉(壁)、

そうでなければ 0→CHR$(0) で空白を描いて、移動した自機を消しています。

これによって Facebook グループ IchigoJam-FAN で公開していた版より速く動くようになっています。

 

220〜230 を次にすると 4・6 キー (テンキーも可能) で操作できます。

220 IF (P>1)*(I=ASC("4")) LET P,P-1
230 IF (P<32)*(I=ASC("6")) LET P,P+1

 

IF は THEN をなくしたり、一部は論理式にする事ができるのですが、

IchigoJam BASIC ではそうすると速度が遅くなる事が判明したため、あえて速くするために IF に変えています。

(IchigoJam BASIC 0.9.3 までの話で、IchigoJam BASIC 0.9.4 以降は論理式の方がはやいです)

また、変数の代入もあえて LET にしてあります。


改良版

電子工作マガジン AUTUMN 2015(2015年11月号)P121〜122(マイコンBASICマガジン 内 スペシャルコーナー)に

江崎 徳秀 さん改良によるワイヤレスキーパッド(P49〜)対応版が公開されています。