Как написать игру для ZX Spectrum 1994 г.

Приложение 1 - игровая программа "ЛИСЫ".


ЛИСЫ

Охота на лис - это логическая игра, название которой дала игра радиолюбительская, заключающаяся в том, что спортсмены с радиоприемниками передвигаются по пересеченной местности, пытаясь «засечь» и найти спрятанные

передатчики («лисы») и получая за это определенные очки.

Цель нашей игры - обнаружить и уничтожить пятерых «лис», спрятанных на поле размером 9x9 клеток. Играющий может просматривать клетки поля, вводя два числа, X и Y, где X номер клетки по горизонтали, а Y - номер клетки по вертикали. Номера клеток проставлены слева и сверху поля. После ввода координат клетки на поле в заданном месте загорается число. Это число показывает, сколько «лис» находится на одной линии с этой точкой, считая по горизонтали, вертикали и двум диагоналям вместе. Например, если на одной прямой по горизонтали (вертикали, диагонали) с вашей точкой есть три «лисы», то в этой клетке загорится число 3. Другой пример. Пусть на горизонтали Y = 5 имеется 2 «лисы», на вертикали Х = 3 есть одна «лиса» и на диагоналях, проходящей через точку Х = 3, Y = 5 также есть одна «лиса». Если теперь ввести эти координаты, то вы увидите в соответствующей клетке поля число 4.

Выстрел за выстрелом, на поле будут появляться числа, на основании которых можно вычислить положения всех «лис». Побеждает тот, кто за меньшее количество выстрелов обнаружит 5 «лис». Для выхода из игры необходимо вместо координат ввести два нуля, то есть Х = 0, Y = 0.

Программа 35. ЛИСЫ.

10 BORDER 0: PAPER 0: INK 5 15 OVER 0: FLASH 0: BRIGHT 0

18 CLS

19 GO SUB 6100

20 GO SUB 7000

22 LET HOD=50: LET RE=50 40 GO SUB 5000 45 CLS 47 PAUSE 30 50 DIM M$(3,22) 55 LET F=0

60 LET M$(1)="nnnnnnSTART GAME" 62 LET M$(2)="nnnnnSAVE program" 64 LET M$(3)="nnnnnQUIT PROGRAM"

70 PRINT AT 2,5; INK 3;"***"; INK 6;" HUNTING THE FOX ";INK 3;"***"

72 INK 1: PLOT 39,59: DRAW 0,64: DRAW 177,0: DRAW 0,-64:DRAW -177,0

75 INK 5

80 FOR N=1 TO 3

90 PRINT AT N*2+6,5;M$(N)

100 NEXT N

102 PAPER 1: INK 5: PRINT AT 18,13;"nnnnnn": PRINT AT 18,15 ;RE: PAPER 0

103 PRINT AT 16,13; INK 2;"record" 105 PRINT AT 8,5; PAPER 1;M$(1)

107 PRINT AT 20,0; INK 4;"6-down, 7-up, ENTER-start"

110 LET No=1

120 LET Noo=No

130 LET a=CODE INKEY$

135 IF INKEY$="6" THEN LET No=No+1: GO TO 160

140 IF INKEY$="7" THEN LET No=No-1: GO TO 160

145 IF a=13 OR INKEY$="0" THEN GO TO 210

150 GO TO 130

160 IF No=0 THEN LET No=3

170 IF No=4 THEN LET No=1

180 PRINT AT No*2+6,5; PAPER 1;M$(No)

190 PRINT AT Noo*2+6,5; PAPER 0;M$(Noo)

195 BEEP 0.01,20: FOR N=1 TO 40: NEXT N

200 GO TO 120

210 BEEP 0.05,0

215 IF No=1 THEN GO TO 250

220 IF No=2 THEN GO TO 5800

230 IF No=3 THEN GO TO 6000

240 REM ------START GAME----

250 DIM P$(9,9)

255 LET HOD=0: LET PROM=0:

257 LET POP=0

260 CLS

290 FOR N=1 TO 5

300 LET X=INT (RND*9+1)

310 LET Y=INT (RND*9+1)

320 IF P$(X,Y)="L" THEN GO TO 300

330 LET P$(X,Y)="L"

340 NEXT N

350 CLS

360 REM -----------

400 FOR N=12 TO 156 STEP 16 410 PLOT N,163: DRAW 0,-144 420 NEXT N

430 FOR N=163 TO 15 STEP -16

440 PLOT 12,N: DRAW 144,0

450 NEXT N

455 INK 6

460 FOR N=1 TO 9

470 PRINT AT N*2,0;N

480 NEXT N

490 PRINT AT 0,2;"1 2 3 4 5 6 7 8 9"

491 INK 5

492 PLOT 163,163: DRAW 90,0: DRAW 0,-144: DRAW -90,0: DRAW 0,144: PLOT 165,161: DRAW 86,0: DRAW 0,-140: DRAW -86,0: DRAW 0,140

493 INK 3: PRINT AT 3,23;"SHOTS:": PRINT AT 8,24;"HITS:": PRINT AT 13,22;"X and Y": PRINT AT 14,21;"LAST SHOT"

495 PAPER 1: PRINT AT 5,23;"nnnnnn": PRINT AT 10,23;"nnnnnn" 497 PAPER 0

500 REM ------------

502 LET X=0: LET Y=0

510 LET X1=X: LET Y1=Y: GO SUB 2000

511 INPUT "X=";X,"Y=";Y

514 IF X=0 AND Y=0 THEN GO SUB 5000: GO TO 45

515 IF X<1 OR X>9 OR Y<1 OR Y>9 THEN BEEP 0.5,-23: GO TO 511 520 LET HOD=HOD+1

525 LET KOL=0

530 IF P$(X,Y)="L" THEN GO TO 1000

540 REM ----1----

550 FOR N=1 TO 9

560 IF P$(N,Y)="L" THEN LET KOL=KOL+1 570 NEXT N 580 REM ----2-590 FOR N=1 TO 9

600 IF P$(X,N)="L" THEN LET KOL=KOL+1

610 NEXT N 620 REM ---3---625 LET M=Y 630 LET N=X 650 LET M=M-1 670 LET N=N-1

675 IF N<1 OR M<1 THEN GO TO 700

680 IF P$(N,M)="L" THEN LET KOL=KOL+1

690 GO TO 650

700 LET N=X: LET M=Y

710 LET N=N+1: LET M=M+1

720 IF N>9 OR M>9 THEN GO TO 750

730 IF P$(N,M)="L" THEN LET KOL=KOL+1

740 GO TO 710

745 REM ----4----

750 LET N=X: LET M=Y

760 LET N=N-1: LET M=M+1

770 IF N<1 OR M>9 THEN GO TO 800

780 IF P$(N,M)="L" THEN LET KOL=KOL+1

790 GO TO 760

800 LET N=X: LET M=Y

810 LET N=N+1: LET M=M-1

820 IF N>9 OR M<1 THEN GO TO 850

830 IF P$(N,M)="L" THEN LET KOL=KOL+1

840 GO TO 810

850 GO SUB 1050

860 GO TO 510

1000 REM --P.P. PRINT FOX-

1010 PRINT AT Y*2,X*2; BRIGHT 1; INK 2;"A"

1015 FOR m=1 TO 2: FOR n=20 TO 0 STEP -5: BEEP 0.03,n: PAUSE 1: NEXT n: FOR n=0 TO 20 STEP 5: BEEP 0.03,n: PAUSE 1: NEXT n: NEXT m 1020 LET POP=POP+1 1025 GO SUB 2000

1030 IF POP>=5 THEN GO SUB 3000: GO SUB 5000: GO TO 45 1040 GO TO 510 1050 REM --P.P. PRINT -1060 INK 4: BRIGHT 1: PRINT AT Y*2,X*2;KOL 1065 BRIGHT 0: BEEP 0.06,-5 1070 RETURN

2000 REM ----P.P. PRINT

2010 PAPER 1: INK 4: PRINT AT 5,25;HOD 2020 PRINT AT 10,25;POP

2030 PRINT AT 17,22;"h= u=": PRINT AT 17,24;X1: PRINT AT 17,29;Y1 2035 PAPER 0 2040 RETURN

2140 REM ----------------------

3000 REM----KONEC----

3010 FOR N=1 TO 100: NEXT n

3020 PRINT AT 21,0; INK 2; BRIGHT 1;" BBBBBBBBBBBBB ";BRIGHT 0; INK 4;HOD;BRIGHT 1; INK 2;" BBBBBBBBBBBBB":BRIGHT 0 3030 PAUSE 0

3035 IF RE>HOD THEN LET RE=HOD 3040 RETURN

5000 REM ---- Zastawka ---5002 LET hod=50 5005 CLS

5010 DIM L$(9,32)

5020 let L$(1)="nnnnnnBBB BnnnnBnnBBBBnnBnnnnnnB" 5022 LET L$(2)=nnnnnBnnB BnnnnB BnnnnB BnnnnnnB" 5024 let L$(3)= nnnnBnnnB BnnnnB BnnnnnnBnnnnnnB"

5026 LET L$(4)="nnnBnnnnB ВПППВВ ВППППППВВВВВППВ" 5028 LET L$(5)=nnnBnnnnB ВППВ В ВППППППВППППВ В" 5030 LET L$(6)="nnnBnnnnB В ВППВ ВППППППВППППВ В" 5032 LET L$(7)="nnnBnnnnB ВВПППВ ВППППППВППППВ В" 5034 LET L$(8)="nnBnnnnnB ВППППВ ВППППВ ВППППВ В" 5036 LET L$(9)="BBnnnnnnB ВППППВППВВВВППВВВВВППВ" 5040 BRIGHT 1

5045 FOR N=32 TO 0 STEP -1

5050 FOR M=9 TO 1 STEP -1

5060 PRINT AT M+6,0; INK 2;L$(M)(N+1 TO 32)

5070 NEXT M

5075 BEEP 0.003,20

5077 IF INKEY$<>"" THEN BRIGHT 0: RETURN 5080 NEXT N 5185 BRIGHT 0

5190 LET B$="SANKT-PETERBURG": LET YK=0: LET XK=8: LET CK=5 : GO SUB 5510

5200 LET B$="1993": LET YK=2: LET XK=13: LET CK=4:GO SUB 5500

5210 LET B$="AUTHOR:K. Igor": LET YK=4: LET XK=9: LET CK=6:GO SUB 5510

5220 LET B$="Press any key to continue": LET YK=20:LET XK=3 : LET CK=7: GO SUB 5510

5225 LET P=0

5230 REM ----------------

5240 LET C=INT (RND*6+1)

5245 LET B=INT <RND*1.1>

5250 LET Y=INT (RND*9+1)

5260 LET X=INT (RND*32+1)

5265 IF L$(Y,X)=" " THEN GO TO 5250

5270 PRINT AT Y+6,X-1; BRIGHT B; INK C;L$(Y,X)

5275 LET P=P+1

5280 IF INKEY$<>"" OR P>2000 THEN RETURN 5290 GO TO 5240

5499 STOP

5500 REM ---- B.KWADRAT ---5510 LET S=LEN B$

5520 FOR N=1 TO S 5530 LET C$=B$(N TO N)

5540 PRINT AT YK,XK+N; INK CK;C$; PAPER 3;" " 5545 BEEP 0.03,10 5550 NEXT N

5555 PRINT AT YK,N+XK;" " 5557 PAUSE 15 5560 RETURN

5800 REM ----SAVE PROGRAM----

5810 CLS

5820 PRINT AT 9,1; INK 5;"SAVE program HUNTING THE FOX" 5830 SAVE "FOXES" LINE 10 5840 PAUSE 30 5850 GO TO 45

6000 REM --WYHOD IZ PROGRAMY--6010 BORDER 1: PAPER 1: INK 5 6020 CLS 6030 STOP

6100 REM -- Graphics ------

6110 FOR N=0 TO 15 6120 READ S 6130 POKE USR "A"+N,S 6140 NEXT N 6150 RETURN

6160 DATA 2,30,46,254.30,127,15,15 6170 DATA 124,222,158,254,254,254,124,0 7000 REM ----BEEP----

7010 BEEP 0.1,0: BEEP 0.1,5:BEEP 0.1,10: BEEP 0.1,15:BEEP 0.1,20 7020 RETURN




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Обзор - обзор свежих релизов: Lord of Chaos, F-19 Stealth Fighter, Carrier Command, The Simpsons, Gauntlet 3, The Addams Family, Wild West Seymour, Sly Spy, Paris To Dakar, Duck Out, Johangir Khan World Championchip Squash, The Amazing Adventures of Robin Hood.
Вставай, страна огромная! - Воззвание к патриотам России.
HOT GAMES - Лучшая десятка от Magic Soft.
COMPLEX COMPO - Виртуальный фестиваль компьютерного искусства в Польше.
Программирование - Hе самая медленная пpоцедуpа вывода спpайтов 2*2 с точностью до пиксела.

В этот день...   19 февраля