タイピング練習プログラムです。音が鳴るので圧電素子を接続してください。
2つのファイルを保存して、T=0で変数を初期化、LRUN 0 で実行します。
スペースで進みます。EnterでVIDEO 1を実行して終了します。中断した場合はF8で。
IchigoJamのプログラムの容量は1kBなので、問題の設定を別のファイルに分離しています。
文字列変数はプログラム間での引き継ぎができないので配列に分割して格納しています。
問題の文字列は"以外のキャラクターが設定できます。
複数のプログラムを保存して実行する方法の説明。
シリアル通信やMixJuiceでは、通信データがキー入力と同等に扱われます。
プログラムリストだけでなく、ダイレクトコマンドの実行も可能。
SAVE LOAD LRUN のファイル番号について
省略した場合は、直前に使用したファイル番号が引き継がれます。
F=0 とダイレクトコマンドを実行することで、
SAVE F は SAVE 0 として動作します。
FILE()は直前に動作したSAVE LOAD LRUNのファイル番号を返します。
SAVE FILE()+1 で、次のプログラム番号にSAVEされます。
LRUNFILE()-1は一つ前のプログラムが実行されます。
FILE()の代わりにFでもよいし、プログラム番号を決めておいてもよいでしょう。
NEW SAVE の実行でIchigoJamが処理の時間を必要とするので、
改行を入れて入力データ落ちを防ぐことを意図しています。
NEW F=0 10 'TYPING 20 @TOP:IF T=1 GOTO @TYPE 30 @INIT:VIDEO 3:CLS:X=2:Y=4 40 LOCATE X,Y-2:PRINT "TYPING" 50 LOCATE X,Y:PRINT "HIT SPACE" 60 @HS:K=INKEY():IF K<>32 GOTO @HS 70 @ST:N=10:C=0:M=0:CLT 80 @SET:LRUN1 90 @TYPE 100 CLS:I=0:LOCATE X,Y 110 @LP:IF [I]=0 GOTO @EX 120 PRINT CHR$([I]);:I=I+1:GOTO @LP 130 @EX:I=0:LOCATE X,Y+1 140 @KEY:K=INKEY():IF K=0 GOTO @KEY 150 IF K>=20 THEN PRINT CHR$(K); 160 IF K<>[I] PLAY"A32":LOCATE X+I,Y+1:M=M+1:GOTO @KEY 170 PLAY"<<A32":I=I+1:IF [I]<>0 GOTO @KEY 180 @EXIT:C=C+I:N=N-1 190 IF N>0 GOTO @SET 200 @END:CLS 210 LOCATE X,Y-2:PRINT "TIME:";TICK()/60 220 LOCATE X,Y-1:PRINT "TYPE:";C 230 LOCATE X,Y:PRINT "MISS:";M 240 LOCATE X,Y+2:PRINT "HIT SPACE" 250 T=0 260 @KB:K=INKEY() 270 IF K=32 GOTO @ST 280 IF K=10 THEN VIDEO 1:CLS:END 290 GOTO @KB SAVEF NEW 10 'SET 20 @SET:R=RND(7) 30 S=0:IF R>S+7 THEN LRUN 2 40 IF R=S THEN A="RED" 50 IF R=S+1 THEN A="ORANGE" 60 IF R=S+2 THEN A="YELLOW" 70 IF R=S+3 THEN A="GREEN" 80 IF R=S+4 THEN A="BLUE" 90 IF R=S+5 THEN A="INDIGO" 100 IF R=S+6 THEN A="VIOLET" 110 I=0 120 @LP:IF PEEK(A+I)=34 THEN GOTO @EX 130 [I]=PEEK(A+I):I=I+1:GOTO @LP 140 @EX:[I]=0:T=1:LRUN 0 SAVEFILE()+1 LRUNFILE()-1
タイピングで音を付けると、楽しいですね。正解不正解が分かりやすいですし、正解のときも音が軽快で楽しい! videoコマンドの使い方も、ユーザフレンドリー! プログラムの書き方も工夫していただいてありがとうございます。これなら、MixJuiceを使ったとき非常に扱いやすいですね!