ЦИФЕРТОН
Эта игра хорошо развивает зрительную и музыкальную память и может использоваться для проверки этих качеств у играющего и его друзей.
На игровом поле расположены несколько прямоугольников разного размера и цвета, причем четыре прямоугольника второго снизу ряда программа в случайном порядке зажигает и гасит подобно лампочкам новогодней гирлянды, сопровождая вспышку каждого из прямоугольников звуковыми сигналами (каждому прямоугольнику соответствует свой тон).
Задача играющего - пользуясь четырьмя управляющими клавишами, воспроизвести заданную компьютером последовательность зажигания
прямоугольников в нижнем ряду экрана. Имейте в виду, что прямоугольники зажигаются и гаснут сериями, то есть вначале - один, например, красный, и вы должны ответить нажатием клавиши, включающей красный прямоугольник в нижнем ряду. Затем один за другим вспыхивают два прямоугольника - повторите и эту последовательность. Если ошибок не допущено, последует серия из трех вспышек и т. д. Когда вы сумеете правильно повторить последовательность из пяти цветов, игра перейдет на второй уровень и, сигнализируя об этом включит прямоугольник в верхней части игрового поля. Для перехода на третий уровень необходимо запомнить и быстро воспроизвести последовательность из десяти вспышек, а на четвертый - из пятнадцати.
Конечно же, дело не обойдется без ошибок. Когда это произойдет, программа остановится, включит длинный фиолетовый прямоугольник в средней части экрана, а потом игра начнется снова, но уже на том уровне, которого вы успели достигнуть к моменту ошибки.
Тем, у кого есть музыкальный слух, советуем воспользоваться звуковыми сигналами: так как каждому прямоугольнику соответствует свой тон, можно даже закрыть глаза и нажимать клавиши ориентируясь только по звукам.
Напомним, что время игры ограничено, а для его контроля служит постепенно уменьшающийся синий прямоугольник в левой части игрового поля.
После загрузки программы на экране появляется мерцающее меню:
1 - НАЧАЛО ИГРЫ
2 - ВЫБОР УРОВНЯ "1"
3 - ВЫБОР КЛАВИШ
4 - ВЫХОД
Выберите раздел ( 1 - 4 )
Нажав несколько раз клавишу 2, можете установить желаемый уровень игры -ему соответствует число в кавычках. Буква «П» означает ПРАКТИКА - это обычная игра, только несколько медленнее и без уровней. Третий раздел меню позволяет назначить удобные для вас клавиши управления. Стандартный набор высвечивается на экране после загрузки программы и будет установлен, если нажать предложенные клавиши. Для начала игры достаточно нажать клавишу 1. Чтобы не забыть, какими клавишами пользоваться, под прямоугольниками нижнего ряда горят выбранные вами символы. Для перехода в меню в любой момент времени, нажмите клавишу Е.
Программа 38. ЦИФЕРТОН.
10 BORDER 0: PAPER 0: INK 7 20 CLS
30 PRINT AT 10,10;"PLEASE WAIT" 40 DIM k$(4): GO SUB 8300 50 GO SUB 9900 60 REM -- MENU --62 CLS 65 LET UR=1
70 PRINT AT 3,9; INK 2;"Ц И"; INK 1;" Ф E"; INK 6;" P T"; INK 4;" О Н"
75 PRINT AT 20,5; INK 6;"ВЫБЕРИТЕ РАЗДЕЛ (1 - 4)"
76 IF UR=0 THEN PRINT AT 10,25; INK 3;........; INK 4;"p"; INK 3;........: GO TO 80
77 PRINT AT 10,25; INK 3;........; INK 4;UR; INK 3;........
80 LET c=5: LET c1=7
90 PRINT AT 8,8; INK c;"1 - НАЧАЛО ИГРЫ"
95 PRINT AT 10,8; INK c1;"2 - ВЫБОР УРОВНЯ"
100 PRINT AT 12,8; INK c;"3 - ВЫБОР КЛАВИШ"
105 PRINT AT 14,8; INK c1;"4 - ВЫХОД"
120 IF INKEY$="1" THEN GO SUB 7000: GO TO 600
130 IF INKEY$="2" THEN GO SUB 7000: GO SUB 300
140 IF INKEY$="3" THEN GO SUB 7000: GO TO 400
150 IF INKEY$="4" THEN GO SUB 7000: STOP
160 IF c=5 THEN LET c=7: LET c1=5: GO TO 90
170 IF c=7 THEN LET c=5: LET c1=7: GO TO 90
300 REM ** ВЫБОР УРОВНЯ **
310 LET ur=u r+1
320 IF ur=4 THEN LET ur=0
330 IF ur=0 THEN PRINT AT 10,25; INK 3;........; INK 4;"P";INK 3;........: RETURN
340 PRINT AT 10,25; INK 3;........; INK 4;ur; INK 3;........
350 RETURN
400 REM ** ВЫБОР КЛАВИШ ** 410 CLS
420 PRINT AT 3,10; INK 6;"ВЫБОРППКЛАВИШ"
430 PRINT AT 7,10; PAPER 2; INK 5;"КРАСНЫЙПП"; PAPER 0; " - "
435 PRINT AT 9,10; PAPER 1; INK 5;"СИНИЙПППП"; PAPER 0; " - "
440 PRINT AT 11,10; PAPER 6; INK 0;"ЖЕЛТЫЙППП"; PAPER 0;INK 5;" - "
445 PRINT AT 13,10; PAPER 4; INK 0;"ЗЕЛЕНЫЙПП"; PAPER 0;INK 5;" - "
450 FOR n=1 TO 4
455 PRINT AT 5+n*2,22;k$(n)
460 NEXT n
470 FOR n=1 TO 4
475 LET i$=INKEY$
480 IF i$="" OR I$="E" THEN GO TO 475
485 IF (CODE i$>64 AND CODE i$<91) OR (CODE i$>47 AND CODE i$<58) THEN GO TO 490
487 BEEP .05,-23: GO TO 475
490 IF n>1 THEN IF i$=k$(n-1) THEN GO TO 475
495 LET k$(n)=i$
500 PRINT AT 5+n*2,22; INK 3;i$
510 BEEP .002,50: BEEP .001,40
520 NEXT n
530 FOR n=1 TO 100: NEXT n 540 GO TO 60
600 REM ** НАЧАЛО ИГРЫ ** 610 CLS
620 PRINT AT 1,9; INK 5;"Ц И Ф E Р Т О Н"
625 INK 7
630 FOR N=31 TO 191 STEP 40
640 PLOT N,137: DRAW 34,0: DRAW 0,-10: DRAW -34,0: DRAW 0,10 650 NEXT N
660 FOR N=23 TO 239 STEP 56
665 PLOT N,96: DRAW 50,0: DRAW 0,-26: DRAW -50,0: DRAW 0,26 667 PLOT N,56: DRAW 50,0: DRAW 0,-18: DRAW -50,0: DRAW 0,18 670 NEXT N
675 PRINT AT 15,3; PAPER 2; nnnnnn";AT 16,3; nnnnnn";AT 15,10; PAPER 1;"nnnnnn";AT 16,10;"ПППППП";AT 15,17; PAPER 6;"nn";AT 16,17;"nnnnnn"; AT 15,24; PAPER 4;"ПППППП";АТ 16,24;"ППП" 680 FOR N=1 TO 4
685 INK 3: LET X=N*7-2: PRINT AT 19,X;K$(N) 690 NEXT N 697 INK 7
700 FOR N=39 TO 207 STEP 56
705 PLOT N,25: DRAW 10,0: DRAW 0,-10: DRAW -10,0: DRAW 0,10 710 NEXT N
720 PLOT 23,113: DRAW 218,0: DRAW 0,-10: DRAW -218,0: DRAW 0,10
722 PLOT 7,7: DRAW 0,130: DRAW 10,0: DRAW 0,-130: DRAW -10,0
723 FOR N=5 TO 20: PRINT AT N,1; PAPER 1;" ": NEXT N
725 PLOT 0,0: DRAW 0,175: DRAW 255,0: DRAW 0,-175: DRAW -255,0
750 REM ------------------
755 DIM C(50)
760 LET KOL=0: LET PR=0
770 LET SP=0: LET PO=17
795 REM ---------------------
800 FOR N=4 TO 24 STEP 5: PRINT AT 5,N;"ПППП": NEXT N
805 IF UR=0 THEN FOR N=4 TO 24 STEP 5: PRINT AT 5, N;PAPER 4;"ПППП": NEXT N: GO TO 850
810 PRINT AT 5,UR*5-1; PAPER 2;"ПППП" 845 REM --------------------
850 LET SP=30-UR*4: IF UR=0 THEN LET KOL=0: GO TO 860
853 IF PO=1 THEN GO SUB 2100: GO TO 60
855 LET KOL=UR*5-5: IF UR>1 THEN GO TO 862
860 LET KOL=KOL+1
862 DIM C(50)
865 FOR W=1 TO 100: NEXT W
870 IF KOL=UR*5 THEN LET UR=UR+1: GO SUB 2000: GO TO 800
880 FOR N=1 TO KOL
890 LET NO=INT (RND*4+1)
895 IF N<>1 THEN IF NO=C(N-1) THEN GO TO 890
900 LET C(N)=NO
905 LET M=NO*7-4
907 IF NO=1 THEN LET IN=2
910 IF NO=2 THEN LET IN=1
915 IF NO=3 THEN LET IN=6
920 IF NO=4 THEN LET IN=4
930 PRINT AT 10,M; PAPER IN; nnnnnn";AT 11,M;"nnnnnn";AT 12,M;"ПППППП"
932 IF NO=1 THEN LET NOTA=0
933 IF NO=2 THEN LET NOTA=3.86
934 IF NO=3 THEN LET NOTA=7.02
935 IF NO=4 THEN LET NOTA=10.88 940 BEEP .1,NOTA
950 FOR W=1 TO SP: NEXT W
955 PRINT AT 10,M; PAPER 0; nnnnnn";AT 11,M;"nnnnnn";AT 12,M;"ПППППП"
960 NEXT N
970 FOR N=1 TO KOL
980 IF INKEY$=K$(1) THEN LET NO=1: LET M=3: LET IN=2: GO TO 1000 985 IF INKEY$=K$(2) THEN LET NO=2: LET M=10: LET IN=1: GO TO 1000
987 IF INKEY$=K$(3) THEN LET NO=3: LET M=17: LET IN=6: GO TO 1000 990 IF INKEY$=K$(4) THEN LET NO=4: LET M=24: LET IN=4: GO TO 1000 992 IF INKEY$="E" THEN GO TO 60 995 GO TO 980
1000 PRINT AT 15,M; BRIGHT 1; PAPER IN;"ПППППП";АТ 16,M;"ППП" 1010 IF NO<>C(N) THEN LET KOL=UR*5-5: PRINT AT 8,3; PAPER
3;"ППППППППППППППППППППППППППП": ВЕЕР .5,-5: LET PO=PO-1: PRINT AT 21-PO,1; PAPER 0; ": PAUSE 20: PRINT AT 8,3;"ППППП": PRINT AT 15,M; BRIGHT 0; PAPER IN;"ПППППП";АТ 16,M;"ППППП": GO TO 850
1020 PRINT AT 10,M; PAPER Ш;"ПППППП";АТ 11,M;"ПППППП";АТ 12,M;"ПППППП"
1022 IF NO=1 THEN LET NOTA=0
1023 IF NO=2 THEN LET NOTA=3.86
1024 IF NO=3 THEN LET NOTA=7.02
1025 IF NO=4 THEN LET NOTA=10.88 1030 BEEP .1,NOTA
1040 PRINT AT 10,M; PAPER 0;"ПППППП";АТ 11,М;"ПППППП";АТ 12, M; "ПППППП"
1050 PRINT AT 15,M; BRIGHT 0; PAPER IN; ПППППП";АТ 16,M;"ППП"
1055 FOR W=1 TO 10: NEXT W
1060 NEXT N
1070 GO TO 860
2000 REM ** ЗВУК 1 **
2005 REM
2010 FOR Z=1 TO 40
2020 BEEP .007,Z: BEEP .005,20
2025 NEXT Z
2030 RETURN
2100 REM ** ЗВУК 2 **
2105 REM
2110 BEEP .1,20: BEEP .1,17: BEEP .1,14 2120 FOR n=18 TO 8 STEP -2
2130 BEEP .1,n: BEEP .1,n-2: BEEP .1,n-4: BEEP .1,n-6 2140 NEXT n
2150 BEEP .1,6: BEEP 1,0 2160 PAUSE 20 2170 RETURN 7000 REM ** ЗВУК 3 ** 7005 REM
7010 BEEP .0008,40 7015 BEEP .0009,55 7020 BEEP .0008,40 7025 BEEP .0009,30 7030 RETURN 7999 STOP
8300 REM ** ЗНАЧЕНИЕ КЛАВИШ ** 8305 REM
8310 FOR n=1 TO 4 8320 READ k$(n) 8330 NEXT n 8335 LET ur=1 8340 POKE 23658,8 8380 RETURN
8390 DATA "V","B","N","M" 9900 REM ** РУССКИЙ АЛФАВИТ ** 9905 REM
9910 FOR N=1 TO 20 9920 READ A$ 9930 FOR M=0 TO 7 9940 READ s 9950 POKE USR A$+M,S 9960 NEXT M
9970 NEXT N
9975 DATA "B",0,124,64,124,66,66,124,0
9976 DATA "G",0,126,64,64,64,64,64,0
9977 DATA "D",0,28,36,36,36,36,126,66
9978 DATA "J",0,73,73,62,73,73,73,0
9979 DATA "I",0,66,70,74,82,98,66,0
9980 DATA "L",0,30,34,34,34,34,98,0
9981 DATA "P",0,126,66,66,66,66,66,0
9982 DATA "O",0,66,66,36,24,16,96,0
9983 DATA "C",0,68,68,68,68,68,126,2
9984 DATA "H",0,66,66,66,62,2,2,0
9985 DATA "N",0,65,73,73,73,73,127,0
9986 DATA "N",0,65,73,73,73,73,127,1
9987 DATA "E",0,60,66,30,2,66,60,0
9988 DATA "U",0,76,82,114,82,82,76,0
9989 DATA "A",0,62,66,66,62,34,66,0
9990 DATA "S",24,66,70,74,82,98,66,0
9991 DATA "R",0,64,64,124,66,66,124,0
9992 DATA "T",0,192,64,124,66,66,124,0
9993 DATA "F",0,62,73,73,73,62,8,0
9994 DATA "Q",0,66,66,114,74,74,114,0
9995 RETURN
B этой программе широко используются тексты на русском языке. Удобство их применения совершенно очевидно: тут и правила, которые можно вывести на экран перед началом игры, и пояснительные надписи по ее ходу, и тексты в кадрах заставки.
Посмотрим, как это сделано. Часть букв латинского алфавита (и цифра 3) просто использована как русские символы:
А, В, Е, 3, К, М, О, Р, С, Т, X
Остальные сформированы как обычные графические символы в области UDG и соответствуют клавишам:
Q - Ы D - Д Е - Э F - Ф R - Ь G-Г Т-Ъ Н - Ч U - Ю J - Ж I-И L-Л О-У С-Ц Р-П В-Б А-Я N - Ш М - Щ S - Й
Таким образом, чтобы на экране появилась, например, буква «Ы», нужно перейти в графический режим (курсор G) и нажать клавишу Q.
Подпрограмма русского алфавита занимает строки 9900...9995, а обращение к ней происходит в строке 50, то есть непосредственно перед тем, как русские буквы будут использоваться в строках 70, 90, ...
Рекомендуем набирать программу ЦИФЕРТОН, начиная со строк 9900...9995, после чего запустить ее оператором RUN и далее вводить все остальные строки.