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

Игры - текст игры "THE GOLDEN MAGGOT".


Эта игра имитирует состязание в рыбиой ловле "ЗОЛОТАЯ ЛИЧИНКА"
среди лучших рыболовов мира. Управляющие клавиши: "Q" - забросить
крючок ближе к берегу, "А" - забросить крючок подальше от берега,
"1" - сделать подсечку, поймать рыбку.

22 BORDER 7: PAPER 7: INK 0 : В
RIGHT 0: CLS

25 PRINT AT 2,7;"*ЗОЛОТАЯ ЛИЧИ
HKA*";AT 4,3;"СОСТЯЗАНИЕ В РЫБНО
Й ЛОВЛЕ"

30 PRINT AT 8,4;"Р.TODHUNTER +

""ИНФОРКОМ......

40 PRINT AT 12,7;"1)......ИНСТ

РУКЦИЯ"

45 PRINT AT 14, 7; "2)____РЫБНАЯ

ЛОВЛЯ"

50 IF INKEY4="1" THEN LET CH=0
: GO SUB 8000

60 IF INKEV$="2" THEN GO TO 90
70 GO TO 25

90 BEEP .01,30- BEEP 01,40: В
EEP .01,30: BEEP .01,40. BEEP .0
1,30: BEEP .01,40: BEEP .05,50

95 POKE 23658,0: INPUT "ВВЕДИТ
E ИМЯ (МАКС. 12 СИМВОЛОВ) LIN
E NS- IF LEN N$>12 OR LEN N$<0 T
HEN CO TO 90

100 BORDER 7: PAPER 7: BRIGHT 0
. CLS : POKE 23658,8
105 GO SUB INT (RND*3+5)*1000
110 BORDER 0: PAPER 5: BRIGHT 0
: CLS
120 FOR Y=0 TO 31
130 INK 7: PRINT AT O.Y;"jqrS" :A
T 1.Y :"iaB" ;AT 2, Y, " igr8 " ; AT 3,Y;
"igB";AT 4.Y:"ig8"

140 INK 4: PRINT AT 5.Y;"iq8";A
T 6, Y; "igB" ; AT 7, Y; "ic[B" ;AT 8,Y;
"i2fiM;AT 9.Y;"iq8"
150 PRINT AT 10,Y: INK 6;"iq8"
155 NEXT Y

160 PRINT AT 9,2, INK 0; PAPER
4,"ДВ";АТ 10,2; INK 0, PAPER 6;"
CD"

170 PRINT AT 9,6; INK 0; PAPER
4;"AE";AT 10,6; INK 0; PAPER 6,"
CD"

180 PRINT AT 9,16; INK 0; PAPER
4 : "AB" :AT 10,16, INK 0; PAPER 6
; "CD"

190 PRINT AT 9,21; INK 0; PAPER
4;"AB";AT 10,21; INK 0; PAPER 6

. «щи

210 PRINT AT 9,30, INK 0; PAPER
4,"AE,,;AT 10,30, INK 0; PAPER 6
; "CD1

230 PRINT AT 11,4; INK 4; PAPER
5;"EFEF"

240 PRINT AT 12,5; INK 4; PAPER
5; "EFEF"

250 PRINT AT 13,3; INK 4; PAPER
5;"EF"
260 PRINT AT 11,13; INK 4; PAPE
R 5;"£F"

' 265 PRINT AT 12,15; INK 4; PAPE
R 5;"EF"; INK 0; PAPER 5;" ДВ"

270 PRINT AT 13,16; INK 4; PAPE
R 5;"£F" ; INK 0; PAPER 5;"CJ2"

310 PRINT AT 14,18; INK 4; PAPE
R 5;"EF"

320 PRINT AT 12,20; INK 4; PAPE
R 5;"EF";AT 13,21;"£F";AT 12,23;

INK 0; PAPER 5;"AB";AT 13,23; I
NK 0; PAPER 5; "CD"

330 PRINT AT 11,27; INK 4; PAPE
R 5;"EFEF";AT 12,28;"EF"
350 LET FC=0
360 LET P-0
370 LET WT-0
400 LET M=INT (RND*28)
430 FOR Q=1 TO 15
440 BEEP .01,10. BEEP .01,15

442 NEXT Q

443 INK 0

4 55 LET CAST—0

460 LET T=0

461 IF CAST=0 THEN PRINT AT 6,
M; PAPER 4;"QRJ";AT 7,M;" ST";AT

8,M;" OP"

500 PRINT AT 1,1, PAPER 7;"КОЛИ
ЧЕСТВО РЫБ-";FC

510 PRINT AT 2,1; PAPER 7;"ОБЩИ
M BECOM=";P

520 PRINT AT 3,1; PAPER 7;"COCT
ЯЗАНИЕ ";MATCH
525 PRINT AT 1,19; PAPER 7;"ВЕС
ПОЙМАННОЙ".AT 2,19;"РЫБЫ-";WT,"
ФНТ"

530 POKE 23658,8. IF INKEY$="Q"
AND CAST—0 THEN PRINT AT 6,M;
PAPER 4," ID";AT 7,M; PAPER 4;"K
LM">AT 8.M; PAPER 4;"NOP": PAUSE

5: PRINT AT 15,M; INK 2; PAPER
5;"G": LET CAST-15

535 IF INKEY$="A" AND CAST=0 TH
EN PRINT AT 6,M; PAPER 4;" 13";
AT 7,M; PAPER 4:"KLH":AT 8,M; PA
PER 4:"NOP": PAUSE 10: PRINT AT
20,M; INK 2; PAPER 5;"G": LET CA
ST-20

540 LET FISH=INT (RND«40-CH)
550 IF FISH=1 AND CAST-15 OR FI
SH=1 AND CAST=20 THEN LET T-T+l
: GO SUB 2000
560 IF INKEY$="1" AND FISHol T
HEN PRINT AT 15,M; PAPER 5; INK
5:"ig8": PRINT AT 20,M; PAPER 5
; INK 5: "icrS": LET CAST=0: LET T
=T+1: GO TO 461
570 LET T=T+1

572 IF T>600 THEN GO TO 575
574 IF T<600 THEN GO TO 461
580 FOR F=1 TO 10: BEEP .01,10:
BEEP .01,15: NEXT F
587 GO SUB 3000
590 GO TO 100
2000 FOR B=1 TO INT (RND*8)

2005 PRINT AT CAST,M; INK 2; PAP
ER 5;"G"

2006 PAUSE INT (RND*30)+1: LET T
-T+l

2007 PRINT AT CAST,M; INK 2; PAP
ER 5;"H"

2008 PAUSE INT (RND*30)+1

2009 NEXT B: PRINT AT 15,M; INK
5; PAPER 5;"ig8";AT 20,M; INK 5;
"icrS"

2010 IF INKEY$="1" THEN PRINT A
T 6,M; INK 0; PAPER 4;" IG";AT 7
,M:"KLM":AT 8,M;" OP": LET CAST-
0: LET T-T+l: GO TO 461

2020 FOR X=1 TO INT (RND*100)+50
2040 IF INKEY$-"1" THEN PRINT A
T 6,M; INK 0; PAPER 4;"CR3";AT 7
,M; INK 7; PAPER 4;"U'"; INK 0; P
APER 4;"ST";AT 8,M;" OP": BEEP .
01,40: FOR R=1 TO 10: NEXT R: GO

TO 2055
2050 NEXT X

2052 PRINT AT CAST.M; INK 2; PAP
ER 5;"G": LET T=T+1: GO TO 462
2055 LET FW=INT (RND*5+1): LET F
C-FC+1: LET P=P+FW: LET WT=FW: L
ET CAST*О: LET T-T+l
2060 RETURN

3000 BORDER 7: PAPER 7: BRIGHT 0
: CLS

3010 PRINT AT 1,8;"ЗОЛОТАЯ ЛИЧИН
KA";AT 2,9;"РЫБНАЯ ЛОВЛЯ:"
3020 PRINT AT 3,10;"СОСТЯЗАНИЕ "
;MATCH

3025 PLOT 60,170: DRAW 130,0: DR
AW 0,-30: DRAW -130,0: DRAW 0,30
3030 PRINT AT 2,24; INK 4:"EF":
INK 4;"EF";AT 3,25;"EFEF";AT 4,2
4; INK 2;"G": PRINT AT 1,26; INK
0;"AB": PRINT AT 5,27; INK 4;"E
F"

3040 PRINT AT 6,7;" ИМЯ
УЛОВ"

3050 PLOT 50,129: DRAW 150,0: DR
AW 0,-91: DRAW -150,0: DRAW 0,91
3055 FOR 1=118 TO 35 STEP -16 /
3060 PLOT 50,1: DRAW 150,0
3065 NEXT I

3070 PLOT 165,129: DRAW 0,-91
3080 PRINT AT 8,7; "ДЖОН POUI" ;AT
10,7;"ПАУЛЬ РУД";AT 12,7:"ДЭВИД
БРЭМ";AT 14,7;"МИШЕЛЬ ПИКК";AT 1
6,7;N$

3083 FOR L-8 TO 14 STEP 2

3084 LET K1=INT (RND*40)

3085 PRINT AT L,22;K1;

3086 NEXT L

3088 PRINT AT 16,22;P
3100 PAUSE 0: LET MATCH=MATCH+1:
GO TO 22

5000 CLS : PRINT "ПОГОДА: '- СОЛН
ЕЧНАЯ"

5010 GO SUB 8500

5015 IF A<(DP/3) THEN LET CH=CH
+ 0

5020 IF A>(DP/3) AND A<(DP/3*2)

THEN LET CH-CH+1

5030 IF A>(DP/3*2) THEN LET CH=

CH=CH+2

5040 PRINT "'РАЗМЕР КРЮЧКА? (1,2
,3)"

5050 PAUSE 0

5060 IF INKEY$="1" THEN LET CH=
CH+0

5065 IF INKEY$-"2" THEN LET CH=
CH+1

5070 IF INKEY$="3" THEN LET CH=
CH+1

5075 PRINT '"КАКАЯ ПРИМАНКА?'"'"

1-ХЛЕБ ' '"2-ЛИЧИНКИ.....3-ЧЕРВИ"

5080 PAUSE 0

5090 IF INKEY$="1" THEN LET CH=
CH+2

5100 IF INKEY$="2" THEN LET CH=
CH+O

5110 IF INKEY$="3" THEN LET CH=
CH+1

5130 RETURN

6000 CLS : PRINT "ПОГОДА: - ПАСМ
УРНАЯ"

6010 GO SUB 8500

6020 IF A<(DP/3) THEN LET CH=CH
+ 1

6030 IF A>(DP/3) AND A<(DP/3*2)

THEN LET CH=CH+3

6040 IF A>(DP/3*2) THEN LET CH=

CH+1

6050 PRINT '"РАЗМЕР КРЮЧКА? (1,2
,3)"

6060 PAUSE 0

6070 IF INKEY$-"1" THEN LET CH=
CH+1

6080 IF INKEY$="2" THEN LET CH=
CH+1

6090 IF INKEY$="3" THEN LET CH=
CH+2

6100 PRINT '"КАКАЯ ПРИМАНКА?......

1-ХЛЕБ.....2-ЛИЧИНКИ.....3-ЧЕРВИ"

6110 PAUSE О

6120 IF INKEY$=" 1" THEN LET CH=
CH+1

6130 IF INKEY$="2" THEN LET CH=
CH+2

6140 IF INKEY$="3" THEN LET CH=
CH+1

6160 RETURN

7000 PRINT "ПОГОДА: - ДОЖДЛИВАЯ"
7010 GO SUB 8500

7020 IF A<(DP/3) THEN LET CH=CH
+0

7030 IF A>(DP/3) AND A<(DP/3*2)

THEN LET CH=CH+1

7040 IF A>(DP/3*2) THEN LET CH=

CH+1

7050 PRINT '"РАЗМЕР КРЮЧКА? (1,2
,3)"

7060 PAUSE О

7070 IF INKEY$="1" THEN LET CH=
CH+3

7080 IF INKEY$="2" THEN LET CH-
CH+1

7090 IF INKEY$="3" THEN LET CH=
CH+1

7100 PRINT '"КАКАЯ ПРИМАНКА?"'"'
1-ХЛЕБ"'"2-ЛИЧИНКИ"'"3-ЧЕРВИ"
7110 PAUSE О

7120 IF INKEY$="1" THEN LET CH=
CH+1

7130 IF INKEY$="2" THEN LET CH=
CH+1

7140 IF INKEY$="3" THEN LET CH=
CH+3

7160 RETURN

8000 BORDER 7: PAPER 7: BRIGHT 0
: CLS : PRINT AT 1,10;"ИНСТРУКЦИ
Я" ' ' ' '

8050 PRINT "

ПРИГЛАШАЕМ ПОУЧАСТВОВАТЬ В СО-
СТЯЗАНИИ ПО РЫБНОЙ ЛОВЛЕ СРЕДИ
лучших рыболовов мира " "

вы получите' премиальные очки

за вес пойманной рыбы, по 5 оч-
ков за каждый фунт."' "
время состязания ограничено."'
t и

итак, правильно выбирайте глу-
бину расположения крючка и при-
манку ДЛЯ разных условий."' "
вы должны проявить старание,
чтобы стать лучшим рыболовом "
8060 print at 21,5;"нажмите любу
ю клавишу"

8070 pause о: веер .01,40: cls
8090 print "

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

8100 print 1' "

насадка ловля пойманная

наживки рыбы рыбка"

8110 print "

or3 ij qrj" ' "

st klm ust"• "

op nop op"

8112 print '' "

управляющие клавиши: ""1"",""q""
,""А"""

8115 print at 21,5; "нажмите любу
ю клавишу"
8120 pause о

8130 веер .01,40: cls : return
8500 let dp=int (rnd*10)+5
8510 print '"глубина воды (в фут
ах): ";dp

8520 input "глубина закрепления
крючка (в футах) ",а

8530 IF А<0 OR A>DP THEN GO TO
8520

8540 PRINT '"ВЫ ЗАКРЕПЛЯЕТЕ КРЮЧ

OK.....НА ГЛУБИНЕ ";А;" ФТ?"

8550 PRINT '"ПРАВИЛЬНО? (Y/N)"1
8560 PAUSE О

8570 IF INKEYt="N" THEN GO TO 8
510

8575 LET CH=0
8580 RETURN

9000 DATA 4,4,66,66,34,33,33,33
9010 DATA 0,8,20,20,17,17,34,34
9020 DATA 33,145,149,149,85,80,6
6,2

9030 DATA 34,40,68,68,84,80,16,1
6

9040 DATA 0,0,3,31,62,62,31,12
9050 DATA 0,0,224,240,254,252,11
2,0

9060 DATA 8,8,8,28,28,0,0,0
9070 DATA 0,8,8,8,28,0,0,0
9080 DATA 0,0,1,0,0,1,1,3
9090 DATA 248,248.232,168,136,25
4,14,7

9100 DATA 0,0,0,0,0,0,0,3
9110 DATA 3,3,4,11,14,51,196,8
9120 DATA 15,55,207,62,252,212,6
8,206

9130 DATA 12,48,192,0,0,0,0,0
9140 DATA 17,34,58,59,59,123,247
,15

9150 DATA 26,50,116,212,204,202,
145,16

9160 DATA 0,0,0,0,0,0,126,129
9170 DATA 0,0,1,0,0,1,1,131
9180 DATA 99,27,6,7,7,3,4,8
9190 DATA 7,7,127,254,228,92,68,
206

9200 DATA 0,0,64,224,224,224,64,

224

9990 SAVE "MAGGOT" LINE 2

о

После выполнения всех предварительных процедур, программа пе-
реходит на строку 10 - фактическое начало программы. В строке 21
задается номер состязания После этого на экран выводится титульная
заставка игры - строки 22 45, затем следует опрос клавишей 1 или
2 (строки 50...70). Если нажата "Iй, то подпрограмма GO SUB 8000
выводит на экран инструкцию. Если нажата "2", то начинается выпол-
нение строк с 90 - начало игры.

Далее, (после очистки экрана в строке 100) следует выполнение
одной иэ трех подпрограмм, причем выбор происходит случайным обра-
зом. Выражение INT (RND*3+5)*1000 в строке 105 дает одно иэ трех
чисел: 5000, 6000 или 7000 Эти подпрограммы похожи между собой по
структуре, но отличаются выходными параметрами для "СОЛНЕЧНОЙ",
"ПАСМУРНОЙ" или "ДОЖДЛИВОЙ" погоды. В зависимости от этого, при по-
мощи переменной СН моделируется поведение и количество рыбы, ее
способность к клеву. В подпрограмме GO SUB 8500 задается глубина
водоема для ловли - переменная DP в строке 8510, тоже случайным об-
разом. Задачей играющего является правильный выбор глубины закреп-
ления крючка - то есть длины лески между поплавком и крючком - пе
ременная А в строке 8520 Завершается подпрограмма 8500 определени-
ем переменной СН=0 (строка 8575) на тот случай, есдо не встретится
другого более подходящего значения.

После возврата иэ подпрограмм 5000 - 7000, где следуют другие
запросы, со строки 110 начинается прорисовка игрового поля. Ее вы-
полняют строки 110...330. Строки 350...460 задают начальные значе-
ния переменным. Позиция рыболова переменная М - задается случай-
ным образом в строке 400 В зависимости от нее происходит прорисов-
ка рыболова строкой 461.

Прорисовка игрового экрана завершается выводом текста о коли-
честве пойманной рыбы и пр. в строках 500...525.

Строки 530 и 535 выполняют "бросок" на разное расстояние в за-
висимости от нажатия на клавиши "Q" или "А" Строка 560 действия
при "подсечке" - нажатии клавиши "1".

Строка 570 обеспечивает увеличение на 1 переменной времени
ловли Т. В том случае, если отведенное время истекло, строка 572
переводит управление на строку 575 (580). Здесь после звукового
сигнала выполняется финишная подпрограмма GO SUB 3000, в которой
выводятся данные о вашем улове и улове лучших рыболовов мира, вы-
полнявших ловлю в том же водоеме неподалеку от Вас.

После этого, в строке 590 программа зацикливается на строку
100, происходит переход к следующему состязанию.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Вступление - с днем рожденья, ZXNET! и содержание номера.
Вступление - Что будет в третьем номере ?
Scene - interview: интевью с культовым Чешским музыкантом Ziutek/ESI.
IBM - IBM + Эмулятор = ZX Spectrum.
Лаборатория - Подключение HAYES-модема

В этот день...   28 марта