いわゆるスカッシュ

 

カーソルキー・ジョイパットの左右で動かしてボールを跳ね返して下さい。
turbo R の場合は 195 に FOR~NEXT を入れておくとよろしいかと。

 

2025年1月、ボールの形状をより丸くしています。 20 が変わっています。

 

IchigoJam BASIC 版 も公開しています。

10 SCREEN 1,1,0:KEY OFF:R=RND(-TIME)
20 SPRITE$(0)="8|"+STRING$(3,254)+"|8"
30 SPRITE$(1)=STRING$(2,255)
40 X=RND(1)*240:Y=0:CY=4:SS=0
50 IF X>127 THEN CX=4 ELSE CX=-4
60 XX=128:YY=186
70 PUT SPRITE 0,(X,Y),10,0
80 PUT SPRITE 1,(XX,YY),15,1
90 IF X+CX<0 OR X+CX>239 THEN CX=-CX
100 IF Y+CY<0 THEN CY=4
110 IF Y+CY>191 THEN END
120 IF Y+CY<176 OR Y+CY>191 GOTO 160
130 IF X-XX<-16 OR X-XX>32 GOTO 160
140 CY=-4:SS=SS+1:LOCATE 0,0
150 PRINT"SCORE";SS
160 X=X+CX:Y=Y+CY
170 S=STICK(0)+STICK(1)
180 XX=XX+(S=7)*4-(S=3)*4+256
190 XX=XX MOD 256
200 GOTO 70

SPRITE$ はスプライトの文字を定義しますが、
キャラクターに対応する文字で直接入れられます。

 

まず SPRITE$(0) は

"8" は &H38 なので 2 進数で &B00111000、

"|" は &H7C なので 2 進数で &B01111100、
STRING$ は 254=&HFE なので &B11111110 が縦 3 ドット分です。

 

00111000 = "8"

01111100 = "|"

11111110 = 254

11111110 = 254

11111110 = 254

01111100 = "|"

00111000 = "8"

 

SPRITE$(1) は 255=&HFF=&B11111111 が縦 2 ドット分です。

 

11111111 = 255

11111111 = 255

 

以降が 0 になる場合は省略できます。