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

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


Игровое поле представляет собой квадрат 10 на 10 клеток.
Где-то на одной из них затаился оборотень. Ван надо найти его. Вы
вводите координаты клетки, где по-Вашену должен находиться оборо-
тень, а в ответ получите данные о тон, как далеко от этого места он
находится. Ответ может быть дан в различном виде: это, например,
шкала "холодно" - "горячо", или указание расстояния до цели (в
клетках) или же направление (север, юг, юго-восток и т.д.). Резуль-
тат может быть выдан в виде азимута на цель (в градусах) или от це-
ли на Вас или в виде вектора от Вас до цели или же от цели до Вас.
Причем Вы можете выбрать метод сами, как и условие неподвижности
оборотня или возможности его самостоятельного перемещения по игро-
вому полю.

1 GO ТО 10

2 CLEAR 64599: LOAD "chr"C0DE

64600

4 GO SUB 5000: RUN

5 SAVE "HUNT" LINE 2: STOP

8 POKE 23606,88: POKE 23607,2
51: RETURN

9 POKE 23606,0: POKE 23607,60

: RETURN

10 GO SUB 8

12 POKE 23561,0: POKE 23562,0

13 REM ** ОХОТА НА ОБОРОТНЯ «*

14 REM • РИЧАРД БЕННЕТТ,1985 *
20 LET G=l: LET T=0: LET F=0:

GO SUB 90

22 PRINT AT 11,4;" ВАМ НУЖНА И

НСТРУКЦИЯ?"

25 PRINT AT 14,6;"НАЖМИТЕ ""У"
" ИЛИ " "N'.....

30 LET K$=-INKEY$: IF K$="" ТЦЕ
N GO TO 30

31 BEEP .1,15

35 IF K$="N" OR K$»"n" THEN G
О TO 100

40 IF K$o"y" AND К$<>"УМ THEN
BEEP .5,0: GO TO 30
50 CLS : GO SUB 91
52 PRINT AT 8,0; "

УЖАСНЫЙ, СТРАШНЫЙ ОБОРОТЕНЬ"
54 PRINT INK 7; PAPER 2; BRIG
HT 1;AT 10,14;"DE ";
AT 11.14:"F3G" :
AT 12,14;"HIK"
56 PRINT AT 14,0; "

СКРЫВАЕТСЯ ГДЕ-ТО НА ИГРОВОМ
ПОЛЕ :-"
58 GO SUB 95

60 GO SUB 1000: GO SUB 95
62 GO SUB 90

64 PRINT AT 5,0; "

ВЫ ДОЛЖНЫ ПОСТАРАТЬСЯ ОТГАДАТЬ,
ГДЕ ЖЕ ЗАТАИЛСЯ ОБОРОТЕНЬ."

68 PRINT AT 9,0; "
ДЛЯ ЭТОГО УКАЖИТЕ КООРДИНАТЫ,
ГДЕ ПО-ВАШЕМУ ОН СЕЙЧАС
НАХОДИТСЯ:"

69 PRINT INK 2;AT 14,14; FLAS
H 1;"4 5"; FLASH 0; INK 7;AT 14,
15;"-"

70 GO SUB 95: GO SUB 1000: LET
X=4: LET У=5: LET C$=" БАХ!": G

О SUB 3000: GO SUB 95
72 GO SUB 90

74 PRINT AT 6,0; "

ВЫ МОЖЕТЕ ПОЛЬЗОВАТЬСЯ РАЗЛИЧ-
НЫМИ СПОСОБАМИ,ЧТОБЫ КАК МОЖНО
СКОРЕЕ ИЗБАВИТЬСЯ ОТ УЖАСНОГО
ОБОРОТНЯ."

76 PRINT AT 12,0; "

ВЫ МОЖЕТЕ ВЫБРАТЬ ОДИН ИЗ ТЕХ

СПОСОБОВ, КОТОРЫЕ ПЕРЕЧИСЛЕНЫ
В МЕНЮ ВЫБОРА ПОИСКА:-"
78 GO SUB 95: LET F=1: GO SUB
100: LET F=0: GO SUB 95: GO SUB
90

80 PRINT AT 8,0; "

НО НАИЛУЧШИЙ СПОСОБ ПОИСКА ВЫ
СМОЖЕТЕ НАЙТИ ТОЛЬКО ВО ВРЕМЯ
НЕОДНОКРАТНОГО ПОВТОРЕНИЯ ИГРЫ.

■I Q

82 PRINT AT 13,0; INK 9; "

КОГДА ВЫ НАЧИНАЕТЕ ИГРУ
СНАЧАЛА, ТО ВЫ ПОПАДАЕТЕ" ' " " ;
PAPER 1; INK 7;"В МЕНЮ ВЫБОРА СП
ОСОБА ПОИСКА."

84 GO SUB 95: GO ТО 100

90 BORDER О: PAPER О: INK 7: В
RIGHT 1: CLS

91 PRINT AT 0,0; INK 6; INVERS
El;"О X О T А НА ОБОРО
T H Я": RETURN

95 PAUSE 25: PRINT #1;AT 1,2;
BRIGHT 1; FLASH 1;"НАЖМИТЕ ""с""

ДЛЯ ПРОДОЛЖЕНИЯ": PAUSE О

96 LET K$=INKEY$: IF K$="" THE
N GO TO 96

97 IF CODE INKEY$<>67 AND CODE
INKEY$<>99 THEN BEEP .5,0: GO

TO 96

98 BEEP .1,15: RETURN

100 REM ***** МЕНЮ *****

101 BORDER- 1: PAPER 1: INK 7: В
RIGHT 1: CLS

105 PRINT AT 0,0; INK 6; INVERS
El; "ОХОТА НА ОБОРО
T H Я"

110 PRINT AT 1,0;" КАКИМ СПОСОБ
ОМ БУДЕТЕ ИСКАТЬ ? "
112 PRINT BRIGHT О;"

ii

115 PRINT " 1 - ЦЕЛЬ ВИДНА! НЕ
ПРОМАЖЬТЕ!"

120 PRINT ■" 2 - ХОЛОДНО / ГОРЯ
40"
125 PRINT ■" 3 - РАССТОЯНИЕ ДО
ЦЕЛИ"

130 PRINT 4 - НАПРАВЛЕНИЕ(С,
Ю,В,СВ,ЮВ ..)"
135 PRINT '" 5 - АЗИМУТ"
140 PRINT '" 6 - ВЕКТОР"
145 PRINT 7 - ЦЕЛЬ ДВИЖЕТСЯ;
ХОЛОД./ГОРЯЧО"
150 PRINT 8 - ЦЕЛЬ ДВИЖЕТСЯ;
РАССТОЯНИЕ"

155 PRINT 9 - ЦЕЛЬ ДВИЖЕТСЯ;
НАПРАВЛЕНИЕ"

160 PRINT '"О - ЦЕЛЬ ДВИЖЕТСЯ;
АЗИМУТ"

161 IF F-l THEN RETURN

165 PRINT #1;AT 1,3; INK 6; BRI
GHT 1," КАКОЙ СПОСОБ ВЫБИРАЕТЕ?"

170 LET KS«INKEY$: IF K$="" THE
N GO TO 170

180 IF CODE K$>57 OR CODE KS<48
THEN BEEP .5,5. GO TO 170

181 LET T=VAL K$: IF T=0 THEN
LET T=10

185 BEEP .1,15' IF T<4 OR T=7 О
R T»8 THEN GO TO 500
190 BORDER 2:PAPER 2:INK 7:CLS

200 REM *«* СПОСОБ ПОИСКА *«*

201 PRINT AT 0,0; INK 6; INVERS
El;"

ОХОТА НА ОБОРО

T H Я

ii

205 PRINT AT 7,0;" ЗАДАЙТЕ БОЛЕ
E ПРИВЫЧНЫЙ ДЛЯ ВАС СПОСОБ УКАЗА
НИЯ НАПРАВЛЕНИЯ:-"

210 PRINT AT 11,0;" 1 - НАПРАВЛ
ЕНИЕ ОТ ВАС НА ВРАГА"

215 PRINT AT 14,0;" 2 - НАПРАВЛ
ЕНИЕ ОТ ВРАГА НА ВАС"

220 PRINT AT 18,8; INVERSE 1; В
RIGHT 1;" СДЕЛАЙТЕ ВЫБОР "

230 LET KS=INKEYS: IF K$="" THE
N GO TO 230

231 LET K-CODE K$
235 let k$«chr$ к
240 if k<49 or k>50 then beep
-5,10: go to 230
250 beep .1,15: let t$=k$
500 rem ** управляющий цикл *«
505 rem **********************
510 go sub 900
515 let g-l
520 go sub 1000
530 go sub 1500

540 if x-=hx and y=hy then go t
о 3300
550 go sub 2000
570 go sub 3000

580 let g-g+l: if g-ll then go

to 3400

590 go to 530

900 let hx-int (rnd*9)

910 let hy=int (rnd*9)

920 return

1000 rem *** игровое поле ***

1001 rem ********************
1005 border 5: paper 5: ink o.-cls

1015 print at 0,0; bright 1;"

1016 print inverse 1;at 1,22;"0
хота ha":at 2,22;"оборотня"; inv
erse 0,at 4,21;"ходсэффект";at 5
,21;"BBBABBBBBBB"

1017 for k-6 to 16: print at k,2
4;"c": next к

1018 print at 17.21:"bbbabbbbbbb

II

1019 print at 1,0;

1020 for k-=l to 9

1025 print ink 2; bright 1;10-k
; ink 1 : "abababababababababa "
1030 print ink 1; bright 1;" с
CCCCCCCCC "
1035 next к

1040 print bright 1; ink 2;"0";

ink 1:"abababababababababa "
1045 print bright 1; ink 2;" 0
123456 7 89 "

1050 print bright 1;"

и

1060 if tol then return
1070 print at 18-(hy*2),(hx*2);
ink 7; paper 2; bright 1;"de ";
at 19-(hy»2),(hx«2);"£2£";
at 20-(hy«2) . (hx*2 ) : "hik"
1080 return

1500 rem *«« метод поиска *•«

1501 print #1; at 1,1; paper 5; в
right 1;"пожалуйста, ваш ход ном
ЕР " ;G

1505 let l=21: print at 19,l; fl
ash 1;"?"; flash 0;"- "
1510 let k$=inkey$: if k$="" the
n go to 1510

1520 if code k$<58 and code k$>4
7 and l<25 then beep 1,15: go
to 1560

1525 if code ks-13 and l-25 then
beep .1,15: go to 1600

1530 if code k*<>12 then beep .
5,10: go to 1510

1531 beep .1,15

1535 if l=21 then beep .5,10: g
о to 1510

1540 if l=25 then print at 19,2
3; flash 1;"?" let l=23 print
at 20,21;" ";at 21,21;

": go to 1510
1550 go to 1505

1560 print at 19,l; ink 2; flafeh
l;K$

1570 if l=21 then let x=val ks:

print at 19,23; flash 1;"?"
1580 if l=23 then let y-val k$:
print at 20,21; flash 1. bright
1;"нажмите del";at 21,21;" или
enter "

1590 let l=l+2: go to 1510
•1600 print at 20,21;"
";at 21,21;" "

1610 return

2000 rem ** отработка метода ••

2020 IF T<7 THEN GO TO 2000+(50
»T)

2025 GO TO 1750+(T*50)

2050 LET C$=" МИМО" RETURN

2100 LET D=ABS (HX-X)+ABS (HY-Y)

2105 IF D>10 THEN LET С$="ПОЛЮС

!!": RETURN

2110 GO SUB 2130+D

2115 IF T<7 THEN RETURN

2120 GO TO 2500

2131 LET С$-"ОГОНЬ!!": RETURN

2132 LET С$=,,ГОРЯЧО!": RETURN

2133 LET С»="АФРИКА": RETURN

2134 LET С$="ЖАРКО": RETURN

2135 LET С$-"ТЕПЛО": RETURN

2136 LET «-"ВЕСНА": RETURN

2137 LET С$="ХОЛОДНО": RETURN

2138 LET С$=-"ТУНДРА". RETURN

2139 LET С$-"ЛЕД!": RETURN

2140 LET С$="ПОЛЮС!!": RETURN
2150 LET D=ABS (HX-XJ+ABS (HY-Y)
2155 IF D<10 THEN LET C$-" "+S
TR$ D: GO TO 2115

2160 LET C$-n "+STRS D
2165 GO TO 2115

2200 LET C$-" ": IF T*="2" THEN

GO TO 2230
2205 IF Y<HY THEN LET C$="C$+"C"
2210 IF Y>HY THEN LET С»-С$+"Ю"
2215 IF X<HX THEN LET C$=C$+"B"
2220 IF X>HX THEN LET C$=C$+"3"
2225 GO TO 2248

2230 IF Y<HY THEN LET С$=С$+"Ю"
2235 IF Y>HY THEN LET C$=C$+"C"
2240 IF X<HX THEN LET CJ=C$+"3"
2245 IF X>HX THEN LET CJ-C$+"B"

2248 IF T>6 THEN GO TO 2500

2249 RETURN

2250 LET C»0: LET DX-HX-X: LET D
Y=HY-Y: LET AX-ABS DX: LET AY=AB
S DY

2251 IF DX-0 OR DY=0 THEN GO TO
2254

2252 LET C=INT (((ATN (AX/AY))/P

I)*180)

2254 IF DX>=0 AND SGN D¥=l THEN
LET C-C+O: GO TO 2260

2255 IF DX>0 AND DY<=0 THEN LET
C-C+90: GO TO 2260

2256 IF DX<-0 AND SGN DY—1 THEN
LET C=C+180: GO TO 2260

2257 IF SGN DX=-1 AND DY>=0 THEN
LET C-C+270

2260 IF T$="2" AND C<-180 THEN
LET C-0180: GO TO 2265

2261 IF T$="2" AND 0180 THEN L
ET C=C-1B0

2265 IF C>=100 THEN LET C$=(STR

$ C)+"L": GO TO 2290

2270 IF C<10 THEN LET C$=" "+S

TR$ C+"L": GO TO 2290

2275 LET CS=" "+STR$ C+"L"

2290 IF T>6 THEN GO TO 2500

2295 RETURN

2300 REM *** ВЕКТОР ***

2305 LET ........ IF T$-"2" THEN

LET DX=X-HX" LET DY=Y-HY: GO TO
2320

2310 LET DX=HX-X: LET DY=HY-Y

2320 IF DX>=0 THEN LET C$=" "

2325 LET C$=CJ+STR$ DX

2330 IF DY>=0 THEN LET C$=C$+" "

2335 LET C$=CJ+STR$ DY

2340 IF T>6 THEN GO TO 2500

2345 RETURN

2500 LET DX=0: LET DY-0: LET DX=
INT (RMD*3)-1■ IF DX<>0 THEN GO

TO 2530
2505 LET DY=INT (RND*3)-1
2530 IF HY+DY>-0 AND HY+DY<10 TH
EN LET HY=HY+DY

2540 IF HX+DX>-0 AND HX+DXC10 TH
EN LET HX=HX+DX
2550 RETURN

3000 REM *** ТОЧКА ПОПАДАНИЯ «**
ЗОЮ PRINT AT 5+G,21;X;"-" ; Y ;AT
5+G,25;C$

3015 PRINT AT 19-(Y*2),1+(X*2);

INK 2; PAPER 6: FLASH 1; BRIGHT
1;"M". BEEP 2,0

3020 PRINT AT 19-(Y*2),1+(X*2);
INK 7; PAPER 2; BRIGHT 1;G
' 3050 RETURN
3300 REM «** ПОПАДАНИЕ! »**
3310 LET C$="ECTb!!!"
3315 PRINT AT 5+G,21;X;"-";Y;AT
5+G,25;C$

3320 PRINT AT 19-(Y*2),1+(X*2);
INK 2; PAPER 6; FLASH 1; BRIGHT
1; "И"

3321 BEEP .3,8- BEEP .3,8: BEEP
.3,8: BEEP .3,8: BEEP .4,4: BEEP

.2,8: BEEP 1,11

3325 PRINT INK 7; PAPER 2; BRIG
HT 1; FLASH 1;

AT 18-(Y*2),(X*2);"DE ";
AT 19-(Y»2)■(X*2);"F3G":
AT 20-(Y«2)■fX*2):"HIK"

3326 IF G=1 THEN LET S$=" ": G
О TO 3330

3327 IF G>=2 AND G<=4 THEN LET
S$="A ": GO TO 3330

3329 LET SS-'^B"

3330 PRINT #1;AT 1,1, BRIGHT 1;
PAPER 6; INK 2;"ОБОРОТЕНЬ ПОБЕЖД
EH ЗА ";G;" ХОД";S$

3340 PAUSE 200

3350 INPUT ;: GO SUB 95

3355 LET K$=INKEY$: IF K$="" THE

N GO TO 3355

3375 GO TO 3500

3400 REM »** ПРОМАХ! ***

3401 REM ***************

3402 FOR K-16 TO -16 STEP -1: BE
EP .05,K: NEXT К

3403 PRINT #1;AT 1,1; INK 0; PAP
ER 5;" "; BRIGHT 1; FLASH 1;" О
БОРОТЕНЬ БЫЛ В ПОЗ. ";НХ;"-";HY;

ч а

3405 PRINT INK 7; PAPER 2; BRIG
HT 1; FLASH 1;
AT 18-(HY*2),(HX»2);"EE ";

AT 19-(HY*2),(HX*2);"£JS";
AT 20-(HY*2) , (HX*2) ;nEIK"
3410 LET CI="XA-XA!"
3420 PRINT AT 5+G,21; BRIGHT 1;
FLASH 1;HX;"-";HY;AT 5+G,25;CS
3425 PAUSE 500: GO TO 3350
3500 REM *»* КОНЕЦ ИГРЫ *»•
3505 REM ******************
3510 PAPER 4: INK 0: BORDER 4: В
RIGHT 1: CLS

3515 PRINT AT 0,0; PAPER 0; INK
7; INVERSE 1;"

ОХОТА НА О

Б О P О- T Н Я

3520 PRINT AT 6,5; FLASH 1; INK

2;" КОНЕЦ ИГРЫ"

3525 PRINT AT 8,2," ВЫ МОЖЕТЕ :-

И

3530 PRINT ' "

1 - СЫГРАТЬ ЕЩЕ РАЗ С ТЕМ ЖЕ

МЕТОДОМ ПОИСКА"
3535 PRINT 1

2 - СЫГРАТЬ, ВЫБРАВ НОВЫЙ МЕТОД

ПОИСКА"

3540 PRINT 1 "

3 - ЗАКОНЧИТЬ ИГРУ"

3545 PRINT AT 20,5; BRIGHT 1; FL
ASH 1;"КАКИМ БУДЕТ ВАШ ВЫБОР?"
3550 LET K$=INKEY$: IF К»-"" THE
N GO TO 3550
3555 BEEP .1,15

3560 IF CODE K$<49 OR CODE K$>51

THEN BEEP .5,0 GO TO 3550
3565 GO TO 3560+(VAL K$*10)
3570 PRINT AT 10,1; BRIGHT 1; FL
ASH 1; INK 2;" 1" FOR K=1 TO 30:

NEXT К: GO TO 50O
3580 PRINT AT 13,1; BRIGHT 1; FL
ASH 1; INK 2;"2": FOR K=1 TO 30.

NEXT K: GO TO 100
3590 PRINT AT 16,1; BRIGHT 1; FL
ASH 1; INK 2;"3" : FOR K-l TO 30:
NEXT К

3600 REM * ЗАВЕРШЕНИЕ ПРОГРАММЫ
3605 REM **********************
3610 CLS

3615 PRINT AT 10,0; FLASH 1; PAP
ER 0; INK 7;" ВЫ ХОТИТЕ ЗАВЕРШИТ
Ь ПРОГРАММУ? "

3620 PRINT AT 13,6;"НАЖМИТЕ ""Y"
| ИЛИ ""N"""

3625 LET K$-INKEY$: IF K$="" THE
N GO TO 3625
3630 BEEP 1,15

3635 IF K$-"y" OR K$="Y" THEN G
О TO 9999

3640 IF K$="n" OR K$="N" THEN G
О TO 3500

3645 BEEP .5,0: GO TO 3625

5000 REM *** U D G ***

5001 REM *************
5010 FOR K=65368 TO 65471
5015 READ A: POKE K,A
5020 NEXT К

5025 POKE 23675,88. POKE 23676,2
55: RETURN

5050 DATA 24,24,24,255,255,24,24
.24

5052 DATA 0,0,0,255,255,0,0,0
5054 DATA 24,24,24,24,24,24,24,2
4

5056 DATA 0,0,16,56,84,16,16,16
5058 DATA 24,24,24,0,0,85,85,127
5060 DATA 16,16,48,175,175,48,16
,16

5062 DATA 120,48,48,243,243,0,0,

0

5064 DATA 16,16,16,19,19,0,0,0
5066 DATA 99,99,99,227,247,0,0,2
4

5068 DATA 127,73,91,255,201,65,8
5,127

5070 DATA 0,0,0,240,240,0,0,0
5072 DATA 48,72,72,48,0,0,0,0
5074 DATA 0,73,42,0,99,0,42,73
9999 BORDER 7: PAPER 7: INK О: В
RIGHT 0

UB VAL "1E3": POKE VAL "57602",V
AL "9": POKE VAL "57603",NOT PI:
LET STR=NOT PI: BORDER VAL "2":
INK NOT PI" PAPER VAL "6": BRIG
HT SGN PI: OVER NOT PI: CLS : FO
R X-NOT PI TO VAL "5": PRINT PA




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Розыск - Разыскиваются: ROCET RANGER & SCALETRIC 128...
Юмор - Анекдоты.
События, факты - Новости от MicroSoft - Windows-2000. Конструкции Хаоса'2000.
Апoлoгия Пeccиmизma #3 - Бeзнaдeжнoe дeлo, кoнeчнo, этa eгo oдeржиmocть, cтрemлeниe дoкaзaть, чтo люди Зemли дoбры и рaзymны. Пoтomy чтo oни дoвoльнo чacтo бывaют и нe дoбры и нeрaзymны...
Про список - как составлялся список активных спектрумистов.

В этот день...   21 ноября