"ПЯТНАДЦАТЬ"
--------------------------------
(C) Юрий Бабенко,
г.Кролевец, 1995.
---------------------------------
Посылаю Вам мою первую прог-
рамму. Это компьютерная версия
широко известной игры "15".
5 BORDER 7: PAPER 7: INK 0: C
LS
10 PRINT #1;"PROGRAMMING BY BA
BENKO U.V."
20 FOR Z=1 TO 2: READ A$
22 FOR X=0 TO 7: READ Y
24 POKE USR A$+X,Y
25 NEXT X: NEXT Z
28 DATA "A",1,3,7,15,31,63,127
,255,"B",255,254,252,248,240,224
,192,128
30 DATA "3","9","14","5","8","
12","1","7","10","13","2","6","1
5","4","11"
35 DIM L(16): DIM M(16): DIM N
(16): DIM B$(16,2)
36 FOR Z=1 TO 15: LET L(Z)=2:
LET M(Z)=6: READ G$: LET B$(Z)=G
$: NEXT Z
37 LET L(16)=7: LET M(16)=7: L
ET N(15)=1: LET P=23: LET H=18
40 LET K=0
41 FOR B=1 TO 16 STEP 5: FOR A
=7 TO 22 STEP 5: LET K=K+1: PRIN
T AT B,A; INK L(K);"AЫЫЫ";AT B+1
,A; PAPER M(K); BRIGHT N(K);"
"; BRIGHT 0;"Ы";AT B+2,A;" "; FL
ASH N(K);B$(K); FLASH 0;"Ы";AT B
+3,A; BRIGHT N(K);" "; BRIGHT
0; PAPER 7;"B": NEXT A: NEXT B
43 LET K=0
44 FOR Z=1 TO 15
46 IF B$(Z)=STR$ Z OR B$(Z)=ST
R$ Z+" " THEN LET K=K+1
47 NEXT Z
48 IF K=15 THEN GO TO 135
50 IF INKEY$="1" THEN BEEP .0
5,7: GO TO 60
51 IF INKEY$="0" THEN BEEP .0
5,0: GO TO 110
52 GO TO 50
60 IF P=8 THEN GO TO 63
61 IF ATTR (H,P-5)=178 THEN G
O TO 80
63 IF H=3 THEN GO TO 67
64 IF ATTR (H-5,P)=178 THEN G
O TO 83
67 IF P=23 THEN GO TO 75
68 IF ATTR (H,P+5)=178 THEN G
O TO 87
75 IF P=8 THEN GO TO 80
76 LET A=P-5: LET B=H: GO TO 9
0
80 IF H=3 THEN GO TO 83
81 LET B=H-5: LET A=P: GO TO 9
0
83 IF P=23 THEN GO TO 87
84 LET A=P+5: LET B=H: GO TO 9
0
87 IF H=18 THEN GO TO 75
88 LET B=H+5: LET A=P
90 LET Z=0
92 FOR X=3 TO 18 STEP 5: FOR Y
=8 TO 23 STEP 5: LET Z=Z+1
95 IF X=B AND Y=A THEN LET N(
Z)=1: GO TO 100
96 LET N(Z)=0
100 NEXT Y: NEXT X
105 GO TO 40
110 LET K=0
111 LET Z=0
120 FOR X=3 TO 18 STEP 5: FOR Y
=8 TO 23 STEP 5: LET Z=Z+1
122 IF ATTR (X,Y)=178 AND K=0 T
HEN LET L(Z)=7: LET M(Z)=7: LET
N(Z)=0: LET G$=B$(Z): LET H=X:
LET P=Y
125 IF ATTR (X,Y)=63 AND K=1 TH
EN LET M(Z)=6: LET L(Z)=2: LET
N(Z)=1: LET B$(Z)=G$
127 NEXT Y: NEXT X
129 LET K=K+1: IF K=1 THEN GO
TO 111
130 GO TO 40
135 PRINT AT 21,12; FLASH 1; BR
IGHT 1;"GAME "; INVERSE 1;"OVER"
Управление игрой осуществляет-
ся двумя клавишами: "1" - управ-
ление курсором и "0" - перемеще-
ние кубика.
В строке 41 используются сим-
волы блочной графики и UDG-графи-
ки, формирование последних проис-
ходит в строках 20-25. В строках
36 и 37 происходит первоначальная
установка массивов, цвета рамки,
курсора и чисел. Строки 40 и 41
служат для рисования игрового по-
ля. В строках 43-48 осуществляет-
ся проверка правильности сложения
кубиков. Строки 50-52 служат для
опроса клавиатуры. Строки 60-105
- управление курсором. Строки
110-130 - управление перемещением
кубиков.
1
Можно порекомендовать откомпи-
лировать программу компилятором
TOBOS FP, после чего ее быстро-
действие станет вполне приемле-
мым.
Следует также заметить, что мы
рекомендуем использовать предло-
женную программу в качестве рабо-
чего макета, который послужит за-
готовкой или идеей для более
изощренной программы, аналогично
тому, как это было предложено в
ZX-РЕВЮ-94, N4, стр.83.