音楽をテーマにしたミニプログラム4本を掲載したペーパー(PDF)です。
「はじめのいっぽ/ミニゲームス」に続く、子ども向けのIchigoJam入門課題として作りました。
PLAY命令の文字変数演奏機能を使っていますので、ファームウェア1.2b3以降が必要です。
ペーパーおよびプログラムは、CC BYライセンスとします。プログラミング教室などでご自由にお使いください。
※7/12更新 MMLのバグ修正
※7/30更新
- ピアノ、オルゴール、きおくゲーム
- プログラム先頭部分を共通にしました。スクリーンエディットすれば入力の手間が省けます。
- おとゲーム
- タイトルを変更。音の動きが速くてゲームが難しかったので、遅くしました。
ピアノ
「1〜8のすうじでえんそう!」
1〜8の数字キーを押すと、ド〜1オクターブ上のドを演奏します。
1 '*Piano* CC BY Copyright (c) 2016 Shiro SAITO 10 CLV:CLS 20 ?"ドレ ミ ファソ ラ シ ド" 30 ?"1 2 3 4 5 6 7 8" 40 P="C ;D ;E ;F ;G ;A ;B ;<C" 50 K=INKEY():IF !K GOTO 50 60 PLAY P+(K-49)*3 70 GOTO 50
オルゴール
「すうじでメロディをいれてエンターをおすと、そのとおりになるよ!」
1〜8の数字キーをいくつか入力してEnterキーを押すと、そのメロディを演奏します。
10〜50行はピアノと同じなので、スクリーンエディットすると入力の手間が省けます。
1 '*Music Box* CC BY Copyright (c) 2016 Shiro SAITO 10 CLV:CLS 20 ?"ドレ ミ ファソ ラ シ ド" 30 ?"1 2 3 4 5 6 7 8" 40 P="C ;D ;E ;F ;G ;A ;B ;<C" 50 K=INKEY():IF !K GOTO 50 60 IF K=10 GOTO 90 70 L=L+1:K=K-48:[L]=K:?K; 80 GSB 120:GOTO 50 90 FOR K=1 TO L 100 GSB 120 110 NEXT:RUN 120 PLAY P+([K]-1)*3:WAIT 30:RTN
きおくゲーム
「おとがなったじゅんばんにすうじをおせ!」
いわゆるサイモンです。最初に1つの音を出題されるので、そのとおりにキーを押します。
音が1個ずつ増えて出題されるので、その順番にキーを押します。
押し間違えると、正確に答えられた音の数を表示して終了します。
10〜40行はピアノやオルゴールと同じなので、スクリーンエディットすると入力の手間が省けます。
1 '*Simon* CC BY Copyright (c) 2016 Shiro SAITO 10 CLV:CLS 20 ?"ドレ ミ ファソ ラ シ ド" 30 ?"1 2 3 4 5 6 7 8" 40 P="C ;D ;E ;F ;G ;A ;B ;<C" 50 WAIT 30:L=L+1:[L]=RND(8)+1 60 FOR I=1 TO L:GSB 120:NEXT:I=0 70 K=INKEY():IF !K GOTO 70 80 I=I+1:K=K-48 90 IF K<>[I] BEEP:LC 0,2:?"SCORE=";L-1:END 100 GSB 120:IF I<L GOTO 70 110 GOTO 50 120 LC ([I]-1)*2,2:?"*" 130 PLAY P+([I]-1)*3:WAIT 30 140 LC ([I]-1)*2,2:?" ":RTN
おとゲーム
「いちばん上にきたタイミングで、すうじをおせ!」
いわゆる音ゲーです。画面下から1〜4の数字が上がってくるので、一番上の「<」に来たタイミングで数字キーを押してください。スコアが加算されます。
制限時間の1分が経つと、ゲームが終了します。
1 '*Rhythm* CC BY Copyright (c) 2016 Shiro SAITO 10 CLV:CLS:CLT 20 P="C ;E ;G ;<C" 30 M=RND(20)+1 40 LC M-1,23:IF M<5 ?M ELSE ? 50 LC 4,0:?"< SCORE=";S 60 FOR T=1 TO 40 70 K=INKEY() 80 IF K>0 AND SCR(K-49,0)=K GSB 120 90 NEXT 100 IF TICK()/60<60 GOTO 30 110 LC 0,1:END 120 PLAY P+(K-49)*3:S=S+1 130 LC K-49,0:?" ":RTN