IchigoJamの教室で多数使っていただいている「100mダッシュ」。
10 CLT 20 ?CHR$(251); 30 FOR X=1 TO 100 40 IF !BTN(32) CONT 50 IF BTN(32) CONT 60 ?CHR$(8,46,251); 70 NEXT 80 T=TICK() 90 ?:?T/60;".";T%60/6:CLK
これを遊んでいた子どもたちから「2人で対決して走りたい!」と言われたので、2人で走る「100mダッシュ対決」プログラムを作ってみました。
上の走者はカーソルキー左←、下の走者はカーソルキー右→で走ります。
ゴールするとタイムが表示されます。2人ともゴールしないと終わりません。
10 CLV:CLS:CLT 20 ?CHR$(251):LC 100:?"|" 30 LC 320:?CHR$(251):LC 420:?"|" 40 IF !BTN(28) && A=0 A=1 50 IF BTN(28) && A=1 LC X:?CHR$(8,46,251):X=X+1:A=0 60 IF !BTN(29) && B=0 B=1 70 IF BTN(29) && B=1 LC 320+Y:?CHR$(8,46,251):Y=Y+1:B=0 80 IF X=101 && A<2 T=TICK():LC 128:?T/60;".";T%60/6:A=2 90 IF Y=101 && B<2 T=TICK():LC 448:?T/60;".";T%60/6:B=2 100 IF A!=2 OR B!=2 GOTO 40
状態変数A、Bを使って、2人の走者の「キーが押された(0)」「キーが離された(1)」「ゴールした(2)」状態を管理しています。
複数のキャラを動かすプログラム例としても面白いんじゃないでしょうか。
今回はキーボードを使いましたが、2個の外付けボタンをINポートに付けて、ボタンで走っても面白いでしょう。