25 lines
1.1 KiB
QBasic
25 lines
1.1 KiB
QBasic
10 PRINT CHR$(147):PRINT " MORSE TRAINER":PRINT
|
|
20 PRINT "LISTEN AND READ THE MORSE CODE."
|
|
30 PRINT "GUESS TEN LETTERS. Q=QUIT.":PRINT
|
|
40 PRINT "PRESS ANY KEY"
|
|
50 GET A$:IF A$="" THEN 50
|
|
60 R=RND(-TI):DIM L$(12),M$(12)
|
|
70 FOR I=1 TO 12:READ L$(I),M$(I):NEXT:S=54272
|
|
80 FOR I=0 TO 24:POKE S+I,0:NEXT:POKE S+5,9:POKE S+6,240:POKE S+24,12
|
|
90 SC=0:FOR T=1 TO 10:N=INT(RND(1)*12)+1
|
|
100 PRINT CHR$(147):PRINT "SIGNAL";T;"OF 10":PRINT:PRINT " ";M$(N):PRINT
|
|
110 FOR I=1 TO LEN(M$(N)):C$=MID$(M$(N),I,1):D=45
|
|
120 IF C$="-" THEN D=135
|
|
130 POKE S,52:POKE S+1,17:POKE S+4,33:FOR W=1 TO D:NEXT
|
|
140 POKE S+4,32:FOR W=1 TO 45:NEXT:NEXT
|
|
150 INPUT "LETTER";A$:IF A$="Q" THEN 250
|
|
160 IF A$=L$(N) THEN PRINT "CORRECT!":SC=SC+1:GOTO 180
|
|
170 PRINT "IT WAS ";L$(N)
|
|
180 FOR W=1 TO 600:NEXT:NEXT
|
|
190 PRINT CHR$(147):PRINT "MORSE SCORE";SC;"OUT OF 10":PRINT
|
|
200 PRINT "R=TRAIN AGAIN Q=QUIT"
|
|
210 GET A$:IF A$="R" THEN RUN
|
|
220 IF A$<>"Q" THEN 210
|
|
250 FOR I=0 TO 24:POKE S+I,0:NEXT:PRINT CHR$(147):END
|
|
300 DATA A,.-,B,-...,C,-.-.,D,-..,E,.,F,..-.
|
|
310 DATA G,--.,H,....,I,..,J,.---,K,-.-,L,.-..
|