≡ Передовица » Макулатура » ИиО » Клавиатурный тренажёр АГАТ-9
Клавиатурный тренажёр АГАТ-9 (N4/1994)
Небольшая программа на Бейсике. С минимальными доработками должна пойти и на седьмой версии машины.
С.М.Гончаров. Группа сайта просит вас связаться с нами! (ЗАЧЕМ ЭТО?) Предлагаемый вашему вниманию тренажёр достаточно прост и удобен в обращении. Тренажёр пользуется хорошим спросом среди учащихся. Младшие группы ребят уже через несколько занятий начинают довольно быстро пользоваться клавиатурой. Старшие учащиеся, имеющие хорошую скорость работы, в свободное время с удовольствием проводят между собой соревнования по «слепому» способу работы. В данном варианте программы с целью экономии места операторы REM отсутствуют. Поэтому все пояснения я привожу в описании программы. Кроме того, отсутствуют и некоторые подпрограммы, используемые нами. Но программа легко изменяется, следовательно, любой пользователь может их ввести. Описание программыСтроки 20-180 строят начальную картинку. Пример такой картинки на рис.1. Если в вашем распоряжении имеется символьный редактор, то вы можете предварительно построить эту картинку и записать её на диск, присвоив ей, например, имя KART. А сам вариант этих строчек может выглядеть таким образом: 20 PRINT: PRINT CHR$(4); "BLOAD KART" Строка 181 определяет режим работы. Всего таких режимов - пять:
Строка 183 выходит на подпрограммы установки времени задержки между последовательными символами. Строки 200-650 - подпрограммы выбора символа. Строка 710 ожидает нажатия клавиши. Величина E определяет время ожидания. В случае, когда испытуемый не нашёл нужную клавишу за отведённое время E, его ожидает штраф. Время игры сокращается на величину Q, зависящую от режима работы. Если значение Q в данной ситуации вас не устраивает, вы легко его можете изменить. Строки 800-840 - подпрограммы времени ожидания. Тоже легко изменяемые, в зависимости от подготовки ваших учеников. В предлагаемом мной варианте, значение E используется для младшей группы учащихся. Строки 900-920 сравнивают полученный результат с установленным ранее рекордным результатом. Строка 925 предупреждает звуковым сигналом о прекращении теста. Строки 1000-1060 - подпрограмма вывода «звука лазера» в случае правильного угадывания клавиши. Кроме того, обеспечивает подсчёт результата R. В случае, когда вам надоел «звук лазера», замените эти строки строкой 1000 R=E/10+R: RETURN Строки 930-945 - после истечения выбранного учащимся времени игры машина задаёт вопрос: ИГРА ЗАКОНЧЕНА. ЕЩЕ D/N? После нажатия нужного символа либо ученик повторяет игру (с учётом рекордных значений предыдущих игр), либо игра заканчивается и её можно запустить под новой командой RUN. Если у вас есть желание, вы можете записывать рекордные результаты на дискету. Но не забывайте, что качество дискеты от частого к ней обращения почему-то не улучшается.} PR# 4 } <<КЛАВИАТУРНЫЙ ТРЕНАЖЕР - ''АГАТ-9''>> --- --- --- --- --- --- --- --- --- --- --- --- |;| |1| |2| |3| |4| |5| |6| |7| |8| |9| |0| |-| В Р Е М Я |+| |!| |"| |#| |$| |%| |&| |'| |(| |)| | | |=| --- --- --- --- --- --- --- --- --- --- --- --- 0 c 0 mn --- --- --- --- --- --- --- --- --- --- --- --- РЕЗУЛЬТАТ |Й| |Ц| |У| |К| |Е| |Н| |Г| |Ш| |Щ| |З| |Х| |:| |J| |C| |U| |K| |E| |N| |G| |[| |]| |Z| |H| |*| 0 --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- РЕКОРДЫ |Ф| |Ы| |В| |А| |П| |Р| |О| |Л| |Д| |Ж| |Э| |.| |F| |Y| |W| |A| |P| |R| |O| |L| |D| |V| |\| |>| 2350 --- --- --- --- --- --- --- --- --- --- --- --- ВЫБОР ИГРЫ --- --- --- --- --- --- --- --- --- --- --- --- |Я| |Ч| |С| |М| |И| |Т| |Ь| |Б| |Ю| |,| |/| |Ъ| 1 - рус |Q| |^| |S| |M| |I| |T| |X| |B| |@| |<| |?| |_| 2 - РУС --- --- --- --- --- --- --- --- --- --- --- --- 3 - LAT 4 - lat 5 - Р/L ------------------------------- | П Р О Б Е Л | ------------------------------- НАЖМИ НУЖНУЮ ЦИФРУ ? } Рис. 1 PR#4 } <<КЛАВИАТУРНЫЙ ТРЕНАЖЕР - ''АГАТ-9''>> --- --- --- --- --- --- --- --- --- --- --- --- |;| |1| |2| |3| |4| |5| |6| |7| |8| |9| |0| |-| В Р Е М Я |+| |!| |"| |#| |$| |%| |&| |'| |(| |)| | | |=| --- --- --- --- --- --- --- --- --- --- --- --- 59 c 0 mn --- --- --- --- --- --- --- --- --- --- --- --- РЕЗУЛЬТАТ |Й| |Ц| |У| |К| |Е| |Н| |Г| |Ш| |Щ| |З| |Х| |:| |J| |C| |U| |K| |E| |N| |G| |[| |]| |Z| |H| |*| 480 --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- РЕКОРДЫ |Ф| |Ы| |В| |А| |П| |Р| |О| |Л| |Д| |Ж| |З| |.| |F| |Y| |W| |A| |P| |R| |O| |L| |D| |V| |\| |>| 1750 --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ВЫБОР ИГРЫ |Я| |Ч| |С| |М| |И| |Т| |Ь| |Б| |Ю| |,| |/| |Ъ| |Q| |^| |S| |M| |I| |T| |X| |B| |@| |<| |?| |_| 1 - рус --- --- --- --- --- --- --- --- --- --- --- --- |-----| ------------------------------- | | | П Р О Б Е Л | | < | ------------------------------- | | |-----| ИГРА ЗАКОНЧЕНА. ЕЩЕ D/N } Рис. 2 5 TEXT=34: R=0: B=0: S=0: M=0 10 HOME: PRINT "СКОЛЬКО ВРЕМЕНИ РАССЧИТЫВАЕТЕ ТРЕНИРОВАТЬСЯ ?": PRINT: PRINT "1, 2, 3, ... мин" 15 PRINT: INPUT "НАБЕРИТЕ НУЖНУЮ ЦИФРУ И НАЖМИТЕ НА "ВВОД" - "; H 16 HOME 20 HTAB 14: VTAB 2: PRINT "<<КЛАВИАТУРНЫЙ ТРЕНАЖЕР - ''АГАТ-9''>>"" 30 HTAB 1: VTAB 5 31 PRINT "--- --- --- --- --- --- --- --- --- --- --- ---" 32 PRINT "|;| |1| |2| |3| |4| |5| |6| |7| |8| |9| |0| |-|" 33 PRINT "|+| |!| |"| |#| |$| |%| |&| |'| |(| |)| | | |=|" 34 PRINT "--- --- --- --- --- --- --- --- --- --- --- ---" 35 PRINT 36 PRINT "--- --- --- --- --- --- --- --- --- --- --- ---" 37 PRINT "|Й| |Ц| |У| |К| |Е| |Н| |Г| |Ш| |Щ| |З| |Х| |:|" 38 PRINT "|J| |C| |U| |K| |E| |N| |G| |[| |]| |Z| |H| |*|" 39 PRINT "--- --- --- --- --- --- --- --- --- --- --- ---" 40 PRINT 41 PRINT "--- --- --- --- --- --- --- --- --- --- --- ---" 42 PRINT "|Ф| |Ы| |В| |А| |П| |Р| |О| |Л| |Д| |Ж| |Э| |.|" 43 PRINT "|F| |Y| |W| |A| |P| |R| |O| |L| |D| |V| |\| |>|" 44 PRINT "--- --- --- --- --- --- --- --- --- --- --- ---" 45 PRINT 46 PRINT "--- --- --- --- --- --- --- --- --- --- --- ---" 47 PRINT "|Я| |Ч| |С| |М| |И| |Т| |Ь| |Б| |Ю| |,| |/| |Ъ|" 40 PRINT "|Q| |^| |S| |M| |I| |T| |X| |B| |@| |<| |?| |_|" 49 PRINT "--- --- --- --- --- --- --- --- --- --- --- ---" 50 PRINT 51 PRINT " -------------------------------" 52 PRINT " | П Р О Б Е Л |" 53 PRINT " -------------------------------" 54 VTAB 7: HTAB 10: PRINT CHR$(162) 60 HTAB 52: VTAB 6: PRINT "В Р Е М Я" 70 HTAB 52: VTAB 8: PRINT S;" c ";M;" mn " 80 HTAB 52: VTAB 10: PRINT "РЕЗУЛЬТАТ" 90 HTAB 54: VTAB 12: PRINT R 100 HTAB 52: VTAB 15: PRINT " РЕКОРДЫ" 110 HTAB 54: VTAB 17: PRINT B 120 HTAB 52: VTAB 19: PRINT "ВЫБОР ИГРЫ" 130 HTAB 54: VTAB 21: PRINT "1 - рус" 140 HTAB 54: VTAB 22: PRINT "2 - РУС" 150 HTAB 54: VTAB 23: PRINT "3 - LAT" 160 HTAB 54: VTAB 24: PRINT "4 - lat" 170 HTAB 54: VTAB 25: PRINT "5 - P/L" 180 HTAB 14: VTAB 29: PRINT "НАЖМИ НУЖНУЮ ЦИФРУ ";: GET A$ 181 J = ASC(A$): K = J - 176 182 IF K < 1 OR K > 5 THEN 180 183 ON K GOSUB 800,810,820,830,840 190 HTAB 10: VTAB 29: PRINT CHR$(157) 191 FOR I = 21 TO 25: HTAB 54: VTAB I: PRINT SPC(7): NEXT 192 HTAB 54: VTAB 24; PRINT "|-----|" 193 HTAB 54: VTAB 25: PRINT "| |" 194 HTAB 54: VTAB 26: PRINT "| |" 195 HTAB 54: VTAB 27: PRINT "| |" 196 HTAB 54: VTAB 28: PRINT "|-----|" 197 ON K GOSUB 200,300,400,500,600 198 GOTO 700 200 HTAB 54: VTAB 22: PRINT "1 - pyc" 210 SR = INT (RND (1) * 195) 220 IF SR < 96 THEN 210 230 IF SR > 128 AND SR < 161 THEN 210 240 IF SR > 191 THEN 210 245 Q = 10 250 RETURN 300 HTAB 54: VTAB 22: PRINT "2 - РУС" 310 SR = INT (RND (1) * 260) 320 IF SR < 161 THEN 310 330 IF SR > 191 AND SR < 224 THEN 310 340 IF SR > 255 THEN 310 345 Q = 9 350 RETURN 400 HTAB 54: VTAB 22: PRINT "3 - LAT" 410 SR = INT (RND (1) * 225) 420 IF SR < 161 OR SR > 223 THEN 410 430 Q = 8 450 RETURN 500 HTAB 54: VTAB 22: PRINT "4 - lat" 510 SR = INT (RND (1) * 195) 520 IF SR < 65 OR SR > 192 THEN 510 530 IF SR > 93 AND SR < 161 THEN 510 540 Q = 7 550 RETURN 600 HTAB 54: VTAB 22: PRINT "5 - P/L" 610 SR = INT (RND (1) * 260) 620 IF SR < 65 THEN 610 630 IF SR > 93 AND SR < 96 THEN 610 635 IF SR > 127 AND SR < 161 THEN 610 640 IF SR > 255 THEN 610 645 Q = 6 650 RETURN 700 HTAB 57: VTAB 26: PRINT CHR$(SR) 705 SR$ = CHR$(SR) 710 FOR F = 1 TO E: IF PEEK (-16384)>127 THEN GET C$: IF C$ = SR$ THEN GOSUB 1000: GOTO 725 720 NEXT: S = 8 + Q 725 W = W + .25: IF W = 1 THEN W = 0: S = S + 1 726 IF S > = 60 THEN M = M + 1: S = 0: IF M = H THEN 900 730 HTAB 52: VTAB 8: PRINT S;" с ";M;" mn " 740 HTAB 54: VTAB 12: PRINT R 760 GOTO 197 800 E = 150: RETURN 810 E = 200: RETURN 820 E = 250; RETURN 830 E = 400: RETURN 840 E = 550: RETURN 900 IF B < R THEN HTAB 54: VTAB 17: PRINT R 910 IF B > R THEN R = 0 920 B = R: R = 0 925 FOR I = 1 TO 5: PRINT CHR$ (133): NEXT 930 HTAB 15: VTAB 30: PRINT "ИГРА ЗАКОНЧЕНА. ЕЩЕ D?N ";: GET N$ 940 IF N$ = "D" OR N$ = "d" OR N$ = "Д" OR N$ = "д" THEN 950 945 END 950 S = 0: M = 0: R = 0: GOTO 10 1000 FOR I = 768 TO 781 1010 READ X 1020 POKE I,X: NEXT 1030 CALL 768 1040 R = E / 10 + R: RESTORE: RETURN 1050 DATA 162,255,173,48,192,138,168,136,208 1060 DATA 253,202,208,245,96 * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |