SHIROのIchigoJam日記

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

バイアスロン

こちらも「かわくだり魔改造グランプリ」応募作品。クロスカントリースキーで雪山を走り、ライフルで標的を撃つスポーツ、バイアスロンです。30年以上前の中学時代にPC-8001で作ったゲームの移植です。

f:id:shiro0922:20190512135124p:plain

f:id:shiro0922:20190512135146p:plain

遊び方

  • 自分のキャラクターをカーソルキーで左右に動かして、岩「*」に当たらないように避けてください。1行進むごとに1ポイント得点が入ります。
  • ときどき補給所「△」(おにぎり)が出現します。通過すると50ポイントが入ります。
  • ときどき標的「●」が出現します。スペースキーで弾を発射して撃ってください。標的に当たると100ポイントが入ります。ただし弾が標的から外れた場合や、岩や補給所に当たった場合は100ポイント減点されます。
  • 自分が岩に当たった場合や、ポイントがマイナスになった場合は、そこでゲームオーバーです。

プログラム

10 '*Biathlon
20 CLV:CLS:X=16
30 @LOOP
40 X=X-BTN(28)*(X>0)+BTN(29)*(X<30)
50 C=SCR(X,5)
60 LC X,5:?CHR$(249)
70 IF C=235 BEEP 10,30:T=T+50
80 GSB @SCORE
90 IF C=42 OR S<0 GOTO @GAMEOVER
100 IF BTN(32) GSB @SHOOT
110 T=1:D=42
120 IF !RND(40) D=235
130 IF !RND(60) D=233
140 LC X,5:?"."
150 LC RND(31),23:?CHR$(D)
160 GOTO @LOOP
170 @GAMEOVER
180 LC X,5:?"X"
190 BEEP 30,30
200 LC 7,12:?"XXX GAME OVER XXX"
210 END
220 @SHOOT
230 B=6
240 @BLOOP
250 C=SCR(X,B)
260 IF C OR B>23 GOTO @HIT
270 LC X,B:?"|";
280 B=B+1
290 LC X,B-1:?CHR$(0);
300 GOTO @BLOOP
310 @HIT
320 T=-100
330 IF C=233 BEEP:LC X,B:?"X";:T=100
340 GSB @SCORE
350 IF C=233 WAIT 10:LC X,B:?CHR$(0);
360 RTN
370 @SCORE
380 S=S+T
390 LC 0,0:?S
400 RTN

Web版はこちら。

オリジナルのかわくだりとはかなり別物のプログラムになっていますが、「スクロールゲームでこんなことができるんだ」と子ども達へのヒントになればいいと思います。

かわのぼり

こちらも「かわくだり魔改造グランプリ」応募作品です。川の流れを逆方向にしました。

f:id:shiro0922:20190512144443p:plain

遊び方

カーソルキーの左右で、上から流れてくる岩に当たらないように避けて、川をさかのぼってください。
岩に当たると下へ押し下げられます。一番下まで下げられるとゲームオーバーになって、さかのぼったタイムが表示されます。

プログラム

1 '*Kawanobori
10 CLS:CLT:X=16:Y=6
20 X=X-BTN(28)+BTN(29)
25 X=X&31
30 IF SCR(X,Y) Y=Y+1:IF Y=23 GOTO 80
40 LC X,Y:?"O"
45 SCROLL 2
50 LC RND(32),1:?"*"
60 WAIT 3
70 GOTO 20
80 LC X,Y:?"X";
90 BEEP 30,30
100 LC 0,23:?TICK()/60

Web版はこちら。

SCROLLコマンドを使って画面を逆スクロールさせました。流れが逆になるだけで、だいぶ世界観が変わります。
このプログラムも、既存のかわくだりを改造すれば作れます。
なお60行のWAITは、Web版では画面表示が遅いので「WAIT 0」にしています。

走る電子くん

「かわくだり魔改造グランプリ」応募作品第2弾。抵抗体の中を流れる電子のシミュレーションです。
オリジナルのかわくだりをちょっと改造するだけでできるので、プログラミング教室でやってみるのもいいでしょう。理科や物理の教材にもなります。

f:id:shiro0922:20190512141849p:plain

遊び方

電子くん「e」が抵抗体の中を流れていきます。抵抗体に引っかかると止まってしまうので、カーソルキーの左右で避けてください。

プログラム

1 '*Electron Run
10 CLS:CLT:X=16
20 X=X-BTN(28)+BTN(29)
30 IF SCR(X,5) GOTO 20
40 LC X,5:?"e"
50 LC 1+RND(30),23:?"*"
60 WAIT 3
70 GOTO 20

Web版はこちら。

50行で抵抗体「*」が出てくる乱数の範囲を少し変えて、画面の両端に出ないようにしています。電子が引っかかって動かしづらいかと思ってそうしていますが、そもそもゲームオーバーが無いシミュレーションですし…。