Игры на Бейсике своими руками 1996 г.

Игры - текст игры "FIRE CRACKER".


В этой игре перед Вани совсем абстрактные персонажи. Играющий
перемещает свой объект, находящийся в центре экрана, в горизонталь-
ных направлениях трехмерной графики 3D клавишами "Q"-"S" и »L"-"p»
При нажатии на SYMBOL SHIFT он ножет "стрелять" каплей, которая,
падая на персонажи противоположной стороны, приводит к их исчезно-
вению. В игре несколько экранов, отличающиеся внешний видом объек-
тов.

Структура этой программы несколько отличается от того, что
предлагалось до сих пор. При помощи Бейсика в этой программе форми-
руются три кодовых блока для ее работы. Основная игровая ситуация
реализуется процедурами в кодах, обеспечивающими "трехмерную" гра-
фику 3D. Управление осуществляется (по выбору) либо кемпстон-джойс-
тикои, либо при помощи клавиатуры. Управляющие клавиши: перенещение
- О, S, Р, L; огонь - SYMBOL SHIFT.

PER VAL "2"; BRIGHT NOT PI;"

" : N

EXT X: PRINT AT VAL "2",VAL "10"
;"FIRE KRACKER"

3 PRINT #NOT PI;TAB VAL "3";
BRIGHT SGN PI; PAPER VAL "6"; IN
К NOT PI;"3-Е.HUTCHINSON + ""ИНФ
OPKOM" "•■

4 PRINT AT VAL "10",NOT PI; P
APER VAL "5";"

1 КЕМПСТОН

ДЖОЙСТИК

2 КЛАВИАТУР

A

II

5 PRINT AT VAL "17" ,VAL "3";
PAPER VAL "5";"НАИБОЛЬШИЙ СЧЕТ:
";H$: PRINT AT VAL "19",VAL "6";

PAPER VAL "5";" СЧЕТ ";HI;" 3
ВЕЗДЫ ";HIST

7 LET K$=INKEY$: IF K$="" THE
N GO TO VAL "5"

В IF KJ<"1" OR KS>"2" THEN G
О TO VAL "5"

9 IF K$-"l" THEN POKE VAL "5
7466",VAL "255"

10 IF K$-"2" THEN POKE VAL "5
7466",NOT PI

11 BORDER NOT PI: FOR X=NOT PI
TO VAL "21": PRINT AT X,NOT PI:
PAPER NOT PI; INK VAL "6";"

": В

EEP VAL ".005",X: NEXT X

20 BORDER NOT PI: PAPER NOT PI
: INK VAL "6": BRIGHT SGN PI:CLS

21 RANDOMIZE USR VAL "5E4"

22 IF PEEK VAL "57602"-NOT PI
THEN GO TO VAL "120"

23 IF PEEK VAL "57603"-VAL "10
0" THEN LET STR=STR+SGN PI: P0K
E VAL "57602",VAL "9": POKE VAL
"57603",NOT PI

30 POKE VAL "23606",VAL "B8":
POKE VAL "23607",VAL "251": GO S
UB VAL "140": RANDOMIZE USR VAL
■'50219": GO TO VAL "22"
120 POKE VAL "23606",VAL "88":
POKE VAL "23607",VAL "251": CLS
: GO SUB VAL "140": PRINT AT VAL

"10",VAL "11"; PAPER VAL "6"; I
NK NOT PI;"КОНЕЦ ИГРЫ"

125 RANDOMIZE USR VAL "51469"

130 IF STR>HIST THEN GO TO VAL

"134"

131 IF STR=HIST AND PEEK (VAL "
57603")*VAL "10">HI THEN GO TO
VAL "134"

133 GO TO VAL "2"

134 CLS : PRINT " ПОЗ
ДРАВЛЯЮ!"1'"ВЫ ДОБИЛИСЬ ОТЛИЧНОГ
О РЕЗУЛЬТАТАИ ТЕПЕРЬ МОЖЕТЕ ЗАНЕ
СТИ СВОЕ ИМЯВ КНИГУ РЕКОРДОВ."

135 INPUT AT VAL "15",VAL "10";
AT NOT PI,NOT PI;"ИМЯ (МАКС. 10
СИМВ.): "; LINE HS

136 IF LEN H$>VAL "10" THEN PR
INT #NOT PI;"СЛИШКОМ ДЛИННОЕ ИМЯ
!": PAUSE VAL "30": GO TO VAL "1
34"

137 LET HI=PEEK (VAL "57603")*V
AL "10": LET HIST-STR

139 GO TO VAL "2"

140 BEEP VAL ".01",VAL "-10": P
RINT AT VAL "21",NOT PI; PAPER V
AL "5"; INK NOT PI;" СЧЕТ ";PEEK

(VAL "57603")*VAL "10": PRINT A
T VAL "21",VAL "12"; PAPER VAL "
5"; INK NOT PI;"ЗВЕЗДЫ ";STR: PR
INT AT VAL "21",VAL "23"; PAPER
VAL "5"; INK NOT PI;"ЖИЗНИ ";PEE
К VAL "57602"

150 RETURN
1000 CLS : PRINT AT VAL "10",SGN

PI; PAPER VAL "7"; INK VAL "2";

FLASH SGN PI;"ПОДОЖДИТЕ ПОЖАЛУЙ
СТА 50 СЕКУНД"

1010 RESTORE VAL "1030": LET D$=
" ПЕРВОМ": LET C=NOT PI- FOR X-V
AL "55000" TO VAL "55074": READ
A: LET C=C+A: POKE X,A: NEXT X:
IF COVAL "6595" THEN GO TO VAL

"1200"
1030 DATA 7,4,11,9,15,14,19,11,2

3,8,200,2,255,200,2,255,200,2,25
5,50,3,70,100,3,70,200,3,100,110
,2,255,110,2,100,200,2,255,200,2
,200,200,3,70,100,3,30,100,3,30,
50,3,200,110,2,255,200,2,255,200
,2,100,200,3,70,110,3,70,200,3,1
50,80,4,255,0,0

1045 RESTORE VAL "1060й: LET D$=
"О ВТОРОМ": LET C=NOT PI: FOR X-
VAL "62000" TO VAL "62900": READ
A LET C-C+A: POKE X,A: NEXT X:
IF COVAL "96535" THEN GO TO V
AL "12O0"

1060 DATA 1,7,31,127,143,241,254

,255,128,240.254,249,231,159,127

,127,255,127,79,81,22,3,5,0,126,

120,98,154,104,128,64,0,2,1,1,51

,31,14,29,58,8,16,176,189,191,22

8,148,78,125,109,155,20,83,118,6

0,0,187,176,24,253,230,112,16,32

,0,0,0,0,2,1,1,7,0,0,0,0,0,24,23

6,96,1,11,7,1,0,0,0,0,24,36,168,

224,144,128,0,0,2,1,0,1,1,3,6,3

1062 DATA 64,128,128,128,128,192

,32,192,3,1,5,29,59,123,119,63,1

92,0,160,184,220,222,238,252.95,

39,80,42,85,42,21,10,250,230,30,

238,94,236,88,160,1,1,1,1,1,3,2,

3,0,128,0,128,128,128,128,128,3,

1,5,29,59,123,119,63,128,0,160,1

84,220,222,238,252,95,39,80,42,8

5,42,21,10,250,230,30,254,94,252

,120,160,0,0,0,1,1,6,15,29,128,1

28,128,192,192,112,248,252,25,51

1064 DATA 51,51,57,31,15,0,252,2

54,254,254,254,252,248,0,15,15,1

4,22,58,124,120,112,248,248,56,1

80,174,159,143,135,0,0,0,1,1,6,1

5,29,128,128,12В,192,192,112, 248

,252,25,51,51,51,57,31,15,0,252,

254,254,254,254,252,248,0,15,7,1

1,13,14,30,2B,24,248,216,168,116

,234,170,106,58,3.15,28,56,56,11

3,113,57,192,240,120,252,252,254

,254,252,79,113,126,115,113,113,
113,113,242,142,126,254,238,214

1066 data 214,214,113,113,113,11

3,113,57,15,1,238,254,238,198,23

8,252,240,12В,3,15,28,56,56,113,

113,57,192,240.120,252,252,254,2

54,252,79,113,126,115,121,101,10

1,101,242,142,126,254,254,254,25

4,254,121,113,121,109.121,57,15,

1,254,254,254,254,254,252,240,12

8, 0, 0,3,15, 2B, 39, 56,127, 0,0, 0,22

4,240,184,220,124,127,127,115,97

,96,96,99,119,182,214,222,234,23

4,238,106,106,118,120,124,63,63,

31,15,3,110,110,238,236,242,232,

208.160,0,0,3,15,30,39,56,127,0,

0,0,224

1068 DATA 112,248,220,108,127,12
7,115,97,98,110,108,112,190,214,
218,238,234,234,110,106,112,120,
124,63,63,31,15,3,106,110,238,23

6.242.232.208.160.1.7.12.25.25.1
2,7,1,12B,224,240,248,24В,240,22
4,128,6,5,6,2.2,13,29,26,96,224,
224,192,192,176,184,120,57,51,51
,51,25,29,14,3,252,252,252,252,2
48,248,240,192,0,0,0,0,0,0,0,1,0
,0,0,0,0,0,0,128,7,12,25,25,12,7
,8,31,224,240,248,248,240,224,16
,248,57,51,51,51,25,29,14,3,252,
252,252,252,248,248,240,192,1,7,

31.127.143.241.254.255.128.240.2
54

1070 DATA 249,231,159,127,126,12
7,15,1,6,7,7,7,27,120,96,128,96,
224,224,232,222,124,143,241,254,
255,127,15,1,57,231,159,127,126,
120,96,128,15,31,63,63,127,0,127
,127,252,252,250,250,246,12,236,
232,127,127,0,7,7,7,7,27,232,240
,0,224,224,224,236,220,60,63,127
,0,127,127,127,127,58,250,246,12
,236,232,232,240,3,15,28,56,113,
113,227,227,192,24 0,248,252,254,
254,255,255,227,227,115,121,57,2
8,15,3,255,255,254,254,252,248,2
40,192,0,0,3,15,60,120,241,243,0
,0,192,240,252,254,255.255
1072 DATA 243,241,120,62,15,3,0,
0,255,255,254,252,240,192,0,0,1,
7,31,127,143,241,254,239,128,240
,254,249,231,159,127,127,199,203
,219,227,247,127,15,1,127,127,12
7,127,126,120,96,128,1,1,3,3,7,5
,5,3,0,0,128,128,192,192,192,128
,0,1,9В,177,201.0,15,63,0,128,14
0,26,46,0,240,252,0,0,0,0,3,5,51
,121,12,22,175,47,150,204,128,4В
,220,220,105,48,6,11,15,6,120,8В
,88,48,4,24,52,110,32,14,31,55,4
7,55,31,14,94,110,60.152,130,167
,117,34,0,0,0,0,0,0,0,1,0,0,0,24
,44,60,24,0,0,8,28,8,0,0,2,0,0,0
,64,0,0,48,88,88,0,6,15,11,6,0,0
,0,48,0,0,80,0,0,0,0,0,0,0,0,0
1080 RESTORE VAL "1100": LET DI-
" ТРЕТЬЕМ": LET C=NOT PI: FOR X=
VAL "50000" TO VAL "51518": READ
A: LET C=C+A: POKE X,A: NEXT X:
IF COVAL "193616" THEN GO TO
VAL "1200"

1100 DATA 62,1,50,0,225,0,0,62,9
,50,5,225,62,241,50,150,224,62,1
44,50,149,224,205,10B,195.195,39
,196,62,1,221,33,136,224,6,5,221
,119,0,60,221,35,221,35,221,35,1
6,244,253,229,253.33,216,214,221
,33,134,224,6,5,253,126,0,221,11
9,0,253,126,1,221,119,1,253,35,2

53.35.221.35.221.35.221.35.16.23
2,253,225,175,50,133,224,50,130,
224,50,4,225,50,18,225,205,155,3
4,62,1,50,1,225,205,107,13,62,2,
205,1,22,58,0,225,245,254,4,204,

212.195.241.254.6.204.212.195.24
,23,205,87,198,62,2,50,124,224,5
0,123,224,1,16,244,205,219,199
1102 DATA 62,32,205,228,199,201,
58,0,225,245,254,3,204,142,200,2
41,254,6,204,142,200,62,14,50,12

8.224.62.5.50.129.224.205.191.19

9.58.150.224.71.58.149.224.79.20
5,219,199,0,221,33,134,224,6,5,1
97,205,1B2,197,193,221,35,221,35
,221,35,16,243,201,175,50,1,225,
175,50,19,225,205,193,198,205,10
0,198,205,97,196,58,0,225,245,25

4.4.204.22.198.241.245.254.6.204
,22,198,241.245,254,3,204,42,200
,241,254,6,204,42,200,205,29,200
,58,19,225,254,1,200,24,203,0,22
1,33,134,224,0,0,6,5,197,58,1,22
5

1104 DATA 254,0,32,45,58,150,224
,71,58,149,224,79,197,205,219,19

9.175.50.151.224.205.182.197.205
,239,196,193,22,48,3,21,32,252,0
,205,219,199,62,1,50,151,224,205
,182,197,0,0,24,49,58,150,224,71
,58,149,224,79,22,48,3,21,32,252
,205,219,199,175,50,151,224,205,
182,197,205,239,196,58,150,224,7
1,58,149,224,79,0,205,219,199,62
,1,50,151,224,205,182,197,0,0,19
3,221,35,221,35,221,35,16,145,0,
5B,1,225,254,0,40,3,175,24,2,62,
1,50,1,225,201,5B,3,225,0,0,0,22
1,126,1,87,0,221,126,2,203,111,4
0,13,61,21,254,32,32,15,0,0,203,
175,0,40,8,60,20,254,7,32,2,203
1106 DATA 239,221,119,2,122,221,
119,1,201,58,3,225,198,1,50,3,22
5,58,131,224,254,0,40,3,205,163,
198,205,2,201,175,50,133,224,50,
130,224,60,50,19,225,1,80,244,20
5,219,199,62,32,205,228,199,1,0,
80,205,35,200,205,231,199,1,128,
244,205,219,199,62,32,205,228,19
9,1,0,80,205,35,200,205,231,199,
5B,4,225,60,50,4,225,254,5,40,2,
201,0,58,150,224,71,58,149,224,7
9,22.96,3,21,32,252,120,50,150,2
24,121,50,149,224,0,0,58,0,225,6
0,50,0,225,254,7,194,108,195,0,0
,0,62,1,50,0,225,62,144,50,149,2
24,62,241,50,150,224,205,108,195
,58,5,225,61,50,5,225,254,0,192,
62,7,50,5,225,201,62,2,50,124,22
4,62,3
1108 DATA 50,123,224,0,197,221,1
26,0,254,0,40,75,103,221,126,1,1
11,58,151,224,254,1,32,50,58,128
,224,188,40,9 60,188,40,5,61,61,
188,32,12,58,129,2 24,60,189,32,5
,229,205,166,200,225,58,132,224,
188,32,17,58,133,224,189,32,11,2
29,221,54,0,0,205,24,197,225,193
,201,62,32,253,229,253,33,58,92,

205.228.199.253.225.193.201.58.1
6,225,103,58,17,225,111,62,2,50,
123,224,50,124,224,1,16,244,205,
219,199,62,32,205,228,199,58,12В
,224,188,32,12,58,129,224,189,32
,6,205,166,200,195,212,195,37,44
,125,254,19,204,87,198,205,231,1

99.124.50.16.225.125.50.17.225.2
01,62,0,50,17,225,111,62,25,50,1
6

1110 DATA 225,103,201,58,130,224
,254,0,202,29,200,205,163,198,58
,131,224.61,254,0,4 0,14,50,131,2
24,58,133,224,60,50,133,224,205,
163,198,201,50,131,224,1,64,244,
205,219,199,62,32,205,228,199,20
5,29,200,62,32,205,228,199,175,5
0,133,224,50,130,224,201,62,1,50
,123,224,62,2,50,124,224,1,48,24
4,205,219,199,58,132,224,103,58,
133,224,111,62,32,205,228, 199,20
1,62,2,50,123,224,50,124,224,58,
122,224,254,255,40,49,1,254,127,
237,120,203,79,40,65,1,254,223,2
37,120,203,71,40,112,1,254,253,2
37,120,203,79,202,129,1^9,1,254,
191,237,120.203,79,4 0,114,1,254,
251,237,120,203,71,40,63,195,29.
200,219,31,254,16,40,19,254,10,4
0, 50,254,9,40,67,254,6,40,B4,254
1112 DATA 5,40,106,195,29,200,58
,130,224,254,0,194,29,200,62,255
,50,130,224,58,129,224,0,60,50,1
33,224,58,128,224,50,132,224,62,
3,50,131,224,195,163,198,58,129,
224,254,1,202.29,200,205,191,199
,205,175,199,205,183,199,205,191
,199,201,58,129,224,254,1,202,29
,200,205,191,199,205,159,199,205
,183,199,205,191,199,201,58.129,
224,198,5,87,58,128,224,186,202,
29,200,205,191,199,205,175,199,2
05,167,199,205,191,199,201,58,12

9.224.87.62.25.146.87.58.128.224
,186,202,29,200,205,191,199,205,
159,199,205,167,199,205,191,199,
201,0,0,58,128,224,60,50,128,224
,201,58,129,224,60,50,129,224,20

1 > П !

1114 DATA 58,128,224.61,50,128,2

24,201,58,129,224,61,50,129,224,

201,1,48,241,205,219,199,62,2,50

,123,224,50,124,224,58,12B,224,1

03,58,129,224,111,62,32,205,228,

199,201,120,50,55,92,121,50,54,9

2,201,50,121,224,213,229,62,2,20

5,1,22,225,30,0,1,0,0,253,54,87,

3,62,22,215,125,12В,215,124,129,

215,58,121,224,131,215,28,12,58,

124,224,185,32,234,14,0,4,58,123

}224,184,32,225,253,54,87,0,209,

201,58,5,225,71,14,16,11,120,254

,0,32,250,201,62,2,50,123,224,50

,124,224,38,16,46,3,58,18,225,25

4,1,32,28,1,208,243,205,219,199,

62,32,205,228,199,205,118,200,1,

240,243,205,219,199,205,231,199,

175,50,18,225,201,1.240,243,205

1116 DATA 219,199,62,32,205,228,

199,205,118,200,1,20B,243,205,21

9.199.205.231.199.62.1.50.18.225
,201158,128,224,188,192,58,129,2
24,1B9,192,229,205,166,200,225,6
2,2,50,124,224,50,123,224,201,38
,16,46,3,62,2,50,123,224,50,124,
224,1,208,243,205,219,199,62,32,
205,228,199,201,62,1,50,19,225,5
8,2,225,61,50,2,225,205,191,199,
1,80,241,205,219,199,62,32,205,2
28,199,1.0,80,205,35,200,205,231
,199,1,112,241,205,219,199,62,32
,205,228,199,1,0,80,205,35,20 1.2
05,231,199,62,14,50.128,224,62,5
,50,129,224,205,191,199,58,150,2
24,71,58,149,224,79,58,1,225,254
,1,40,6,22,48,3,21,32,252,205,21
9,199,62,2,50,124,224,62,3,50,12
3,224,201,62,21.221,33,226,214,2
21

1118 DATA 110,0,221,102,1,221,70
,2,17,2,0,245,120,214,16,71,241,
245,221,229,229,197,213,205,181,
3,209,193,225,221,225,241,16,239

,17,3,0,221,25,61,32,213,201
1120 BEEP VAL ".1",VAL "15": RET
URN

1200 BEEP VAL ".5",VAL "50": PRI
NT "ОШИБКА ДАННЫХ В СТРОКАХ DATA

•.....В" ;D$," БЛОКЕ" STOP

9990 SAVE "F.KRACK" LINE SGN PI
9999 BORDER VAL "7": PAPER VAL "
7": INK NOT PI

Формирование кодовых блоков, реализующих 3D-графику происхо-
дит прн помощи подпрограммы GO SUB 1000. Три блока кодов формируют-
ся соответственно в строках 1010, 1045 и ЮВО. В том случае, если
Вы допустили ошибку при наборе в строках DATA, что выявляется при
проверке контрольной суммы. Вы попадаете на строку 1200, где Вам
будет показано, в каком блоке допущена ошибка. Программа останавли-
вается. Проверьте еще раз строки с DATA.

Такой способ организации программы предельно доступен для на-
чинающих с точки зрения самостоятельного набора. Но ои может пока-
заться довольно расточительным с точки зрения расхода памяти, так
как на каждое число расходуется дополнительно еще 6 байт памяти для
представления числа в интегральном 5-байтовом формате с плавающей
запятой Соответственно увеличивается и время загрузки. Картину до-
вершает последующее ожидание, когда загруженная Бейсик-программа
сформирует кодовые блоки.

Для тех, кто хочет несколько сократить это время можно предло-
жить следующий способ усовершенствования структуры программы.

Подайте прямую команду GO SUB 10О0. Теперь измените строки:

1000 LOAD "1"CODE LOAD "2"CODE : LOAD "3"C0DE
н удалите строки с 1010 по 1118 включительно.

После этого сохраните новый вариант программы на ленте, выпол-
нив RUN 9990. Затем выгрузите уже сформированные кодовые блоки
(следом за Бейсик-программой) командами:

SAVE ,fIйCODE 55000,75
SAVE "2"CODE 62000,901
SAVE "3"C0DE 50000,1519

Такой вариант программы более экономичен.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Вступление - Номер вышел очень быстро.
Поздравляем - Итоги конкурса на лучшую программу , проведенного газетой "Калининградская правда". Победили авторы игры LAST BATTLE.
Тусовка - Как правилно вести себя за праздничным столом?! Анекдоты.
Обмен опытом - Особенности видеоконтроллера ZX Spectrum (для программистов).
Ответы на письма №36-43.

В этот день...   23 апреля