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

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


Аналог логической настольной игры. Игровое поле представляет
собой прямоугольник 6 на 9 клеток. Играющие по очереди ставят фишки
на произвольные клетки поля, не занятые фишками противника На одну
клетку можно ставить до 4-х фишек. Когда число фишек на клетке ста-
новится равно 4, то клетка "взрывается" - 4 фишки рассыпаются на 4
клетки, прилегающие вплотную к "взорвавшейся" клетке. Если на при-
легающих клетках были фишки противника, то все они "обращаются в
другую веру" - переходят к другому игроку. Цель игры заключается в
получении преимущества над всей территорией поля. Игра очень дина-
мична и характерна крайней неустойчивостью временного преимущества.
Например, если на прилегающих к "взорвавшейся" клетке были уже по 3
фишки, то после "взрыва" на них окажется по 4 фишки, которые, в
свою очередь, тоже "взорвутся". Так один взрыв может вызвать цепную
реакцию и в один миг изменить всю ситуацию на игровом поле.

1 GO ТО 10

2 CLEAR 64599: LOAD "Chr"CODE
64600

3 GO SUB 7000: REM UDG

4 RUN

5 SAVE "OVERLOAD" LINE 2: SAV
E "chr"C0DE 64600,768: STOP

8 POKE 23606,88" POKE 23607,2
51: RETURN : REM RUS

9 POKE 23606,0: POKE 23607,60

: RETURN : REM LAT ,

10 REM ================== ИГРА

15 BORDER 0: PAPER 0: INK 7: С
LS : GO SUB 8: POKE 23658,0

20 DIM AS(2,7): DIM A(6,9): DI
M 8(6,9)

30 GO SUB 7500: REM ИНСТРУКЦИЯ
40 GO SUB 8000. REM ==== ЭКРАН

50 GO SUB 8500: REM ==========

=================== ХОДЫ ИГРОКОВ

60 GO SUB 9000: REM ==== ВЗРЫВ

70 GO TO 50
7000 REM ФОРМИРОВАНИЕ СИМВОЛОВ
UDG-ГРАФИКИ ====================

7005 POKE 23675,88: POKE 23676,2
55

7010 LET X=255: LET Y=128
7020 FOR F=144 TO 151. FOR N=0 T
О 7: READ A: POKE USR (CHR$ F)+N
, A

7030 NEXT N: NEXT F
7040 DATA X,Y,Y,Y,Y,Y,Y,Y
7050 DATA X,0,0,0,0,0,0,0,
7060 DATA X.1,1,If 1,1,1,1
7070 DATA Y,Y,Y,f,Y,Y,Y,Y
7080 DATA 1,1,1,1,1,1,1,1
7090 DATA Y,Y,Y,Y,Y,Y,Y,X
7100 DATA 0,0,0,0,0,0,0,X
7105 DATA 1,1,1,1,1,1,1,X
7110 RETURN

7500 REM ИНСТРУКЦИЯ ============

7501 CLS

7510 LET IS= "

OVERLOAD!

ЦЕЛЬ ЭТОЙ ИГРЫ СОСТОИТ В ПОЛУ-
ЧЕНИИ ПРЕИМУЩЕСТВА НАД ВСЕМ ПО-
ЛЕМ ДОСКИ ПРИ ЗАХВАТЕ ОПРЕДЕЛЕН-
НЫХ СЕКТОРОВ."
7520 GO SUB 7750
7530 LET I$=

ПОЛОЖЕНИЕ СТОРОН ОЧЕНЬ ИЗМЕН-

ЧИВО. ЕСЛИ 4 ИЛИ БОЛЕЕ ФИШЕК
ОКАЗЫВАЮТСЯ В ОДНОМ СЕКТОРЕ, ТО
ОН ""ВЗРЫВАЕТСЯ"", РАССЫПАЯ ФИШ
КИНА ПРИЛЕГАЮЩИЕ СЕКТОРА."
7540 GO SUB 7750
7550 LET I$=

ИГРОК МОЖЕТ СТАВИТЬ ФИШКИ НА
ПУСТОЙ СЕКТОР ИЛИ НА СЕКТОР, С
ФИШКАМИ СВОЕГО ЦВЕТА.": GO SUB 7
750

7560 PRINT . LET I$= "

ПЕРВЫЙ ИГРОК - КРАСНЫЕ,
ВТОРОЙ ИГРОК - ЗЕЛЕНЫЕ.": GO S
UB 7750

7570 FOR N=l-TO 2: PRINT
7580 LET 1$="ИГРОК ": LET I$=I$+
STRS N LET IS=IS+", ВВЕДИТЕ CBO
E ИМЯ."

7590 GO SUB 7750 .
7600 INPUT AS(N)
7610 NEXT N
77 40 RETURN

7750 FOR F=1 TO LEN 1$
7760 PRINT INK 6;IS(F);: BEEP
002,10
7770 NEXT F
7780 PRINT : RETURN
8000 REM ИГРОВОЙ ЭКРАН =========

8010 CLS : PRINT INK 5;" 1 2

3456789 "
8020 FOR F=1 TO 6: PRINT INK 7;
" ABCBBCBBCBBCBBCBBCBBCBBCBBC '
' INK 5;F; INK 7;" DOE OE OE OE
OE OE OE OE OE"

8030 PRINT INK 7;" D E E E
E E E E E E"
8040 NEXT F

8050 PRINT INK 7;" BBBBBBBBBBB

BBBBBBBBBBBBBBBB"

8060 INK 7: LET P=1

8070 PRINT BRIGHT 1;AT 2,3. PAP

ER 2;"1";AT 17,27; PAPER 4;"1"

8080 LET A(1,1)=1: LET A(6,9)=l.

LET B(l,l)=2: LET B(6,9)=4
8090 RETURN

8500 REM ХОДЫ ИГРОКОВ ==========

8510 PRINT INK 6;AT 21,0;A$(P);
" Х-КООРД.(ПО-ГОРИЗОНТАЛИ)"
8520 INPUT О

8530 IF 0<=0 OR 0>=10 OR OoINT
О THEN BEEP .1,0: GO TO 8520
8540 PRINT INK 6;AT 21.0;A$(P);
" Y-КООРД.(ПО-ВЕРТИКАЛИ) "
8550 INPUT D

8560 IF D<=0 OR D>=7 OR DOINT D

THEN BEEP .1,0: GO TO 8550
8570 IF B(D,0)<>P*2 AND B(D,0)<>

0 THEN PRINT #0;"НЕЛЬЗЯ !" BEE
P 1,0: GO TO 8510

8580 LET B(D,O)=P*2: LET A(D,0)=
A(D,0)+1

8590 PRINT BRIGHT 1;AT (D*3)-l,
(0*3); PAPER B(D,0):A(D,0)
8595 PRINT AT 21,0;"

II

8600 IF P=1 THEN LET P=2: RETUR
N

8610 LET P=1: RETURN

9000 REM ПРОВЕРКА НА "ВЗРЫВ" ===

9010 LET N=1: LET F=1

9020 IF A(N,F)<4 THEN GO TO 920

1

9030 PRINT AT (N*3)-l,F*3; FLASH
1;"*"

9040 IF N=1 THEN GO TO 9080
9050 LET A((N-l),F)=A((N-l), F) +1
: LET A(N,F)=A(N,F)-1 BEEP .05,
6

9060 LET B((N-l),F)=B(N,F)" PRIN
T AT ((N-l)*3)-1,F*3; PAPER B((N
-1),F);A((N-1),F)

9065 PRINT AT (N*3)-l,(F*3); PAP
ER B(N,F);A(N,F)

9070 IF A(N,F)=0 THEN LET B(NrP
)=0: PRINT AT (N*3)-1,F*3; PAPER
0, INK 7; " 0" : GO TO 9010

9080 IF N=6 THEN GO TO 9120
9090 LET A((N+l),F)=A((N+1),F)+1
: LET A(N,F)=A(N,F)-1 BEEP .05,

6

9100 LET B((N+l),F)=B(N,F): PRIN
T AT ((N+l)*3)-1,F*3; PAPER B((N
+1),F);A((N+l),F)

9105 PRINT AT (N*3)-1,(F*3); PAP
ER B(N,F);A(N,F) I

9110 IF A(N,F)=0 THEN LET B(N,F
)=0: PRINT AT (N*3)-1,F*3; PAPER

0, INK 7;"0": GO TO 9010
9120 IF F=1 THEN GO TO 9160
9130 LET A(N,(F-1))=A(N,(F-1))+1
: LET A(N,F)=A(N,F)-1: BEEP .05,
6

9140 LET B(N,(F-l))=B(N,F). PRIN
T AT (N*3)-1,(F-l)*3; PAPER B(N,
(F-1));A(N,(F-1))

9145 PRINT AT (N*3)-1,(F*3); PAP
ER B(N,F);A(N,F)

9150 IF A(N.F)=0 THEN LET B(N,F
)=0: PRINT AT (N*3)-1,F*3; PAPER

0; INK 7;"0": GO TO 9010
9160 IF F=9 THEN GO TO 9190
9170 LET A(N,(F+l))=A(N,(F+l))+1
: LET A(N,F)=A(N,F)-1: BEEP .05,
6

9180 LET В(N,(F+l))=B(N,F): PRIN
T AT (N*3)-l,(F+l)*3; PAPER B(N,
(F+l)):A(N,(F+l))

9185 PRINT AT (N*3)-1,(F*3); PAP
ER B(N,F);A(N,F)

9190 IF A(N,F)=0 THEN LET B(N.F
)=0: PRINT AT (N*3)-1,F*3; PAPER
0; INK 7 ; "0" GO TO 9010

9195 GO TO 9040

9200 PRINT AT (N*3)-1,(F*3); PAP
ER B(N,F);A(N,F)

9201 LET F=F+1

'9210 IF F>9 THEN LET N=N+1: LET
F=1

9220 IF N>6 THEN GO TO 9240
9230 GO TO 9020

9240 REM ПРОВЕРКА НА ПОБЕДУ ==--
9250 LET T=0: LET U=0
9260 FOR F=1 TO 6: FOR N-l TO 9
9270 IF B(F,N)=2 THEN LET T=T+1
9280 IF B(F,N)=4 THEN LET U=U+1
9290 NEXT N: NEXT F
9300 IF T=0 THEN PRINT AT 21.5,
INK 7; PAPER 2; FLASH 1; BRIGHT
1," ";AS(2);" ПОБЕДИЛ ! ":
FOR F=1 TO 10: BEEP .1,RND*20: N
EXT F: PAUSE 400: GO TO 9900
9310 IF U=0 THEN PRINT AT 21,5,

INK 7; PAPER 2; FLASH 1; BRIGHT
1;" ";AS(1);" ПОБЕДИЛ ! *":
FOR F=1 TO 10: BEEP .1,RND*20: N
EXT F: PAUSE 400: GO TO 9900
9320 RETURN

9900 REM ПОВТОРЕНИЕ ИГРЫ =======

9910 PRINT AT 21,0; INK 7;"ХОТИТ
E СЫГРАТЬ ЕЩЕ РАЗ? (У/N)"
9920 POKE 23658,8: INPUT Q$
9930 IF Q$«"N" AND QSo'Tl" THEN
RUN

9999 BORDER 7: PAPER 7: INK 0: В
RIGHT 0

Автостарт происходит со строки 2, где выполняется загрузка
русско-латинского символьного набора После его загрузки, при помо-
щи подпрограммы GO SUB 7 000, происходит формирование символов
UDG-графики. С их помощью происходит прорисовка игрового поля, сос-
тоящего из квадратных секторов.

После этого происходит переход на начало программы- При оста-
новке программы при отладке, запустить ее можно, подав команду RUN.

Игра рассчитана на двух игроков, а не на игру с компьютером.

Основной игровой цикл охватывает строки с 10 по 70. Сначала
происходит вывод инструкции при помощи подпрограммы GO SUB 7500,
затем прорисовка игрового поля (GO SUB 8000), затем - ходы игроков
(GO SUB 8500). После проверки на "взрыв" (GO SUB 9000) программа
зацикливается в строке 70 на ход следующего игрока (на строку 50).

Проверка на взрыв. Если на какой-то клетке оказывается 4 или
большее число фишек, то оиа "взрывается", и фишки, расположенные на
ней, разбрасываются на соседние сектора: вверху, внизу, слева и
справа от "взорвавшегося" сектора, а в самом этом секторе не оста-
ется ни одной фишки. Если в соседних секторах находились фишки про-
тивника, то они попадают под "удар" и погибают.

При проверке на "взрыв" производится также проверка на условия
достижения победы - преимущество фишек одного из игроков по всему
полю. В случае победы одного из игроков, программа переходит на
строку 9900, где Вам будет предложено повторить игру.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Обзо игр - GUMMY, After Burner, MURK 3320, BIGNOSE.
DUCK NEWS - Эмулятор IBM для Спектрума.
Реклама - Реклама и объявления ...
Система - Обзор новых системок: Sprite Maker v4.0, Turbo Copier v2.0, Sample Studio, Art Works 1, Burst Eyes v1.2, Excess Sample Editor v1.4.25, Excess Deluxe Paint v1.1, Graphic Station, BA v1.0, Global Commander v1.31, Quick Commander v2.3, Stall Spriter v0.1, AGA v1.0, Ultra Sonic v0.1, Universal Sprite Studio v1.0, HRUST v1.1, STORM v1.3.
Вступление - содержание номера.

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