KRIEGSSPIELE!
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

Приложение. BASIC 1982. Пара книг издательства USBORNE

Страница 2 из 2 Предыдущий  1, 2

Перейти вниз

Приложение. BASIC 1982. Пара книг издательства USBORNE - Страница 2 Empty Re: Приложение. BASIC 1982. Пара книг издательства USBORNE

Сообщение автор Gudleifr в Вс Дек 08, 2019 10:57 am

THE WIZARD'S WALL

Стена, которой Волшебник окружил свою секретную цитадель - не обычная. Камни в ней - люди, зачарованные злобным взглядом Волшебника, и, более того, она может двигаться. Вы пытаетесь пробить в стене брешь с помощью своей верной катапульты, бросающей гигантские валуны. Если это удастся, сила Волшебника рассеется, и люди будут расколдованы. Волшебник колдовством отбивает летящие камни назад, иногда удачно.

Если вы не преуспеете, то станете еще одним камнем в волшебной стене!!!

[Возведение в степень в некоторых компьютерах "**", в других - "^", а где и "стрелочка"].

<Странная игра-двухходовка, отдельно считается попадание, отдельно - разрушение стены. В результате реакция на действия игрока становится совершенно неочевидной.- G.>

5 RANDOMIZE TIMER
10 CLS
20 PRINT "WIZARD'S WALL"
30 PRINT
40 PRINT "DO YOU WANT ANY HELP?"
50 INPUT I$
60 IF LEFT$(I$,1)="Y" THEN GOSUB 740
70 PRINT "DIFFICULTY?"
80 PRINT "(5=EASY, 1=DIFFICULT)"
90 INPUT Q
100 DIM W(8,8 )
110 DIM E(8 )
120 FOR Y=1 TO 8
130 FOR X=1 TO 4
140 LET W(X,Y)=61
150 NEXT X
160 NEXT Y
170 LET Z=0
180 FOR C=1 TO 3
190 D=INT(RND*80+21)
200 GOSUB 430
210 IF Z=1 THEN GOTO 1150
220 PRINT "YOU ARE";D;"YARDS AWAY"
230 W=INT(RND*41)-20
240 IF W=0 THEN PRINT "NO WIND"
250 IF W<0 THEN PRINT "WIND TO RIGHT"
260 IF W>0 THEN PRINT "WIND TO LEFT":
270 PRINT "GIVE ELEVATION (1-90)"
280 INPUT A
290 PRINT "GIVE SPEED"
300 INPUT V
310 A=A/180*3.1416
320 H=TAN(A)*(D-W)-(5*(D-W)^2)/(V*COS(A))^2
330 H=INT(H/Q)
340 IF H>0 AND H<9 THEN GOSUB 540
350 IF H<1 THEN PRINT "SHOT WAS TOO NEAR"
360 IF H>8 THEN PRINT "SHOT WAS TOO FAR"
370 IF RND>.2 THEN GOTO 200
380 PRINT "THE WALL HAS MOVED..."
390 NEXT C
400 PRINT "YOU HAVE BEEN TURNED"
410 PRINT "INTO STONE"
420 END
430 FOR I=1 TO 30000
440 NEXT I
450 CLS
460 PRINT
470 FOR Y=8 TO 1 STEP -1
480 FOR X=1 TO 8
490 PRINT CHR$(W(X,Y));
500 NEXT X
510 PRINT
520 NEXT Y
530 RETURN
540 GOSUB 650
550 W(E(H)-1,H)=0
560 IF V*COS(A)>50 THEN W(E(H)-2,H)=0
570 IF RND>.5 AND H<>1 THEN W(E(1),1)=61
580 IF RND>.5 AND H>5 AND H<8 THEN W(E(H+1)-1,H+1)=0
590 IF H>1 THEN GOTO 630
600 FOR Y=2 TO 8
610 IF RND<.5 THEN W(E(Y)-1,Y)=0
620 NEXT Y
630 GOSUB 650
640 RETURN
650 FOR Y=1 TO 8
660 X=1
670 IF W(X,Y)=0 OR X=8 THEN GOTO 700
680 X=X+1
690 GOTO 670
700 E(Y)=X
710 IF X=1 THEN Z=1
720 NEXT Y
730 RETURN
740 PRINT "YOU ARE ATTACKING THE"
750 PRINT "LAST STRONGHOLD OF THE"
760 PRINT "NOTORIOUS WIZARD, WHO"
770 PRINT "IS HIDDEN BEHIND AN"
780 PRINT "ENDLESS STONE WALL,"
790 PRINT "EACH STONE BEING ONE"
800 PRINT "OF HIS FORMER VICTIMS."
810 PRINT "ONLY YOU CAN ATTACK,"
820 PRINT "AND FREE THEM FROM"
830 PRINT "HIS MAGIC."
840 PRINT "YOU MUST DESTROY THE"
850 PRINT "WALL USING CATAPULTS,"
860 PRINT "BUT BEWARE, THE WIZARD"
870 PRINT "HAS THE POWER TO MOVE"
880 PRINT "THE WALL BACK AND"
890 PRINT "FORTH, AND OCCASIONALLY,"
900 PRINT "TO DEFLECT YOUR SHOTS"
910 PRINT "BACK AT YOU."
920 GOSUB 1110
930 PRINT "AFTER EACH SHOT, YOU ARE"
940 PRINT "SHOWN A CROSS-SECTION"
950 PRINT "OF THE WALL, SHOWING"
960 PRINT "HOW MUCH DAMAGE THERE"
970 PRINT "IS."
980 PRINT "NOTE THERE ARE CERTAIN"
990 PRINT "KEY STONES THAT PRODUCE"
1000 PRINT "LOTS OF DAMAGE, AND"
1010 PRINT "ALSO, THE FASTER THE"
1020 PRINT "BOULDER IS MOVING"
1030 PRINT "HORIZONTALLY, THE MORE"
1040 PRINT "DAMAGE IT WILL CAUSE."
1050 PRINT "CAN YOU DEFEAT THE"
1060 PRINT "WIZARD IN TIME TO SAVE"
1070 PRINT "THE THOUSANDS OF TRAPPED"
1080 PRINT "SOULS......"
1090 GOSUB 1110
1100 RETURN
1110 PRINT "PRESS A KEY ";
1120 IF INKEY$="" THEN GOTO 1120
1130 CLS
1140 RETURN
1150 PRINT "YOU MANAGED TO BREAK"
1160 PRINT "A HOLE IN THE WIZARD'S"
1170 PRINT "WALL - YOU HAVE BEATEN"
1180 PRINT "HIS MAGIC POWERS, AND"
1190 PRINT "FREED HIS VICTIMS."
1200 END

ЧТО ИЗМЕНИТЬ
Можно сделать стену толще: в строке 100 нужно увеличить размер массива (первое число - толщина), в строке 130 нужно считать не до 4, а до новой толщины минус 4, в строке 480 нужно перебирать до новой толщины. Если стена станет много толще, для пробития ее понадобится больше времени - строка 180.
Gudleifr
Gudleifr
Admin

Сообщения : 1216
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Приложение. BASIC 1982. Пара книг издательства USBORNE - Страница 2 Empty Re: Приложение. BASIC 1982. Пара книг издательства USBORNE

Сообщение автор Gudleifr в Вс Дек 08, 2019 10:57 am

MISSILE!

Есть три ракетные базы, каждая способна выпустить по самолету одну ракету. Вы должны оценить высоту и скорость самолета, чтобы сделать это в нужный момент.

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

Сможете ли вы сбить вражеский самолет?

<Еще одна графическая программа.- G.>

5 RANDOMIZE TIMER
10 SCREEN 1,1:CLS
40 DIM Y(3),F(3)
50 N=1:MS=5
60 PS=INT(RND*6+4)
70 P=INT(RND*135+11)
80 GOSUB 400
90 FOR I=PS TO 265 STEP PS
100 X=I-PS:Y=159-P:C=0:GOSUB 300
110 X=I:C=3:GOSUB 300
120 FOR J=1 TO 1000
122 F$=INKEY$:IF F$<>"" THEN 130
125 NEXT J
130 IF F$="" OR N>3 THEN 160
140 F(N)=1
150 N=N+1
155 C=0
160 FOR J=1 TO 3
170 C=0:GOSUB 350
180 IF F(J)=0 OR Y(J)>145 THEN 230
190 Y(J)=Y(J)+MS
200 C=3:GOSUB 350
210 X=J*70-I : Y=P-Y(J)
220 IF X>-1 AND X<15 AND Y>-9 AND Y<5 THEN 270
230 NEXT J
240 NEXT I
250 PRINT "MISSED"
260 GOTO 280
270 PRINT "HIT!!!"
280 F$=INKEY$:IF F$="" THEN GOTO 280
285 SCREEN 2:CLS
290 SCREEN 0:CLS:END
300 LINE (X,Y)-(X,Y-8 ),C
320 LINE -(X+3,Y-2),C:LINE -(X+12,Y-2),C
330 LINE -(X+14,Y),C:LINE -(X,Y),C
340 RETURN
350 LINE (70*J,158-Y(J))-(70*J,154-Y(J)),C
370 RETURN
400 FOR J=1 TO 3
410 LINE (70*J-5,159)-(70*J+5,159),3
420 NEXT
430 RETURN
Gudleifr
Gudleifr
Admin

Сообщения : 1216
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Страница 2 из 2 Предыдущий  1, 2

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения