2020.04.27 Mon
CoDoMo塾 東砂教室

タイピングプログラム

タミヤロボットスクールの公式HPで「おウチでもカムロボを動かそう!」ということで自宅学習用のコンテンツが紹介されています。

https://tamiya-robotschool.com/form/homestudy/index.html

 

その中で「目指せタイピングマスター」というタイピング練習用のプログラムがあります。

プログラム自体は、シンプルかつよく考えられたものです。ただ、いきなり全部のキー入力が必要になり、初心者のタイピング練習用には少し厳しい内容です。

そこで、タイピングプログラムとして使いやすい物に改造してみましょう。

※ただし、以下についてはコーディング量が非常に増えてプログラミング自体の難易度も高くなります。事前準備まで含めて考えると元のプログラムの方が初心者向けだと思います。

 

※Ichigojam本体のみでやる場合

■初期メニュー表示用プログラム(保存場所:SAVE 0)
10 CLS:CLV
20 ?”MENU”
30 ?”LEVEL: 1, 2, 3″
40 INPUT “LEVEL:”,L
50 IF L>0 AND L<4 GOTO 60 ELSE GOTO 10
60 LRUN L

 

上記で選択された数字によって以下の呼び出されるプログラム(難易度)が変わります。

■初級用【A~;】真ん中のキーのみ(保存場所:SAVE 1)

1 REM 0=9,Q=10,P=19,A=20,;=29,Z=30,/=39
5 L=20:U=29:N=3
6 FOR I=0 TO N
7 ?N-I
8 WAIT 60
9 NEXT
10 CLT:X=5:Y=9:N=0:Q=20
20 CLS:P=R:R=RND(40)
30 IF P==R GOTO 20
35 IF R<L OR R>U GOTO 20
40 LC X,Y:?”1 2 3 4 5 6 7 8 9 0″
50 LC X+1,Y+2:?”Q W E R T Y U I O P”
60 LC X+2,Y+4:?”A S D F G H J K L ;”
70 LC X+3,Y+6:?”Z X C V B N M , . /”
80 A=(R%10*2)+(R/10):B=(R/10)*2
90 C=SCR(X+A,Y+B)
100 LC X+A,Y+B+1:?”↑”
110 T=TICK()
120 LC 11,4:?”TIME:”;T/60;”.”;T/6%10
130 K=INKEY()
140 IF K==C N=N+1:PLAY “O5B8G8″:GOTO 20
150 IF N==Q GOSUB 200
160 GOTO 110
200 ?”MENU”
210 ?”RETRY: 1, NEXT: 2, MENU: 0″
220 INPUT “NUMBER:”,L
230 IF L>=0 AND L<3 GOTO 240 ELSE GOTO 200
240 LRUN L

■中級用【Q~P、A~;】のキーのみ(保存場所:SAVE 2)
1 REM 0=9,Q=10,P=19,A=20,;=29,Z=30,/=39
5 L=10:U=29:N=3
6 FOR I=0 TO N
7 ?N-I
8 WAIT 60
9 NEXT
10 CLT:X=5:Y=9:N=0:Q=20
20 CLS:P=R:R=RND(40)
30 IF P==R GOTO 20
35 IF R<L OR R>U GOTO 20
40 LC X,Y:?”1 2 3 4 5 6 7 8 9 0″
50 LC X+1,Y+2:?”Q W E R T Y U I O P”
60 LC X+2,Y+4:?”A S D F G H J K L ;”
70 LC X+3,Y+6:?”Z X C V B N M , . /”
80 A=(R%10*2)+(R/10):B=(R/10)*2
90 C=SCR(X+A,Y+B)
100 LC X+A,Y+B+1:?”↑”
110 T=TICK()
120 LC 11,4:?”TIME:”;T/60;”.”;T/6%10
130 K=INKEY()
140 IF K==C N=N+1:PLAY “O5B8G8″:GOTO 20
150 IF N==Q GOSUB 200
160 GOTO 110
200 ?”MENU”
210 ?”RETRY: 2, NEXT: 3, MENU: 0″
220 INPUT “NUMBER:”,L
230 IF L>=0 AND L<4 GOTO 240 ELSE GOTO 200
240 LRUN L

■上級用 目指せタイピングマスターの原型版(保存場所:SAVE 3)
1 REM 0=9,Q=10,P=19,A=20,;=29,Z=30,/=39
5 L=10:U=29:N=3
6 FOR I=0 TO N
7 ?N-I
8 WAIT 60
9 NEXT
10 CLT:X=5:Y=9:N=0:Q=20
20 CLS:P=R:R=RND(40)
30 IF P==R GOTO 20
40 LC X,Y:?”1 2 3 4 5 6 7 8 9 0″
50 LC X+1,Y+2:?”Q W E R T Y U I O P”
60 LC X+2,Y+4:?”A S D F G H J K L ;”
70 LC X+3,Y+6:?”Z X C V B N M , . /”
80 A=(R%10*2)+(R/10):B=(R/10)*2
90 C=SCR(X+A,Y+B)
100 LC X+A,Y+B+1:?”↑”
110 T=TICK()
120 LC 11,4:?”TIME:”;T/60;”.”;T/6%10
130 K=INKEY()
140 IF K==C N=N+1:PLAY “O5B8G8″:GOTO 20
150 IF N==Q GOSUB 200
160 GOTO 110
200 ?”MENU”
210 ?”RETRY: 3, MENU: 0″
220 INPUT “NUMBER:”,L
230 IF L==0 OR L==3 GOTO 240 ELSE GOTO 200
240 LRUN L

 

■追加行の解説
1:コメント行。キーの範囲指定の参考用なのでなくてもOK
5~9:タイピングマスターは、いきなり始まるので、カウントダウン後に開始するように変更
35:決まった範囲のキーでない場合は、RNDをやり直す
200~240:再挑戦、次のレベル、MENUへ戻るを選択。230は入力値チェック

 

Ichigojam本体は4つのプログラムしか保存できないので、上記ではLevel3までのプログラムにしています。

もしEPROMを使えるのであれば、LRUN前にLの値に100を足すなどすれば難易度をさらに細かく分けることも可能です。

※参考までに改造例

■初期メニュー表示用プログラム(保存場所:SAVE100)

10 CLS:CLV
20 ?”MENU”
30 ?”LEVEL: 1, 2, 3, 4, 5″
40 INPUT “LEVEL:”,L
50 IF L>0 AND L<6 GOTO 60 ELSE GOTO 10

60 L=L+100

70 LRUN L

 

■【A~;】真ん中のキーのみ(保存場所:SAVE 101)
1 REM 0=9,Q=10,P=19,A=20,;=29,Z=30,/=39
5 L=20:U=29:N=3
6 FOR I=0 TO N
7 ?N-I
8 WAIT 60
9 NEXT
10 CLT:X=5:Y=9:N=0:Q=20
20 CLS:P=R:R=RND(40)
30 IF P==R GOTO 20
35 IF R<L OR R>U GOTO 20
40 LC X,Y:?”1 2 3 4 5 6 7 8 9 0″
50 LC X+1,Y+2:?”Q W E R T Y U I O P”
60 LC X+2,Y+4:?”A S D F G H J K L ;”
70 LC X+3,Y+6:?”Z X C V B N M , . /”
80 A=(R%10*2)+(R/10):B=(R/10)*2
90 C=SCR(X+A,Y+B)
100 LC X+A,Y+B+1:?”↑”
110 T=TICK()
120 LC 11,4:?”TIME:”;T/60;”.”;T/6%10
130 K=INKEY()
140 IF K==C N=N+1:PLAY “O5B8G8″:GOTO 20
150 IF N==Q GOSUB 200
160 GOTO 110
200 ?”MENU”
210 ?”RETRY: 1, NEXT: 2, MENU: 0″
220 INPUT “NUMBER:”,L
230 IF L>=0 AND L<3 GOTO 240 ELSE GOTO 200

240 L=L+100
250 LRUN L

 

色々試してみましょう。