User Tools

Site Tools


en:danger_uxb

DANGER UNEXPLODED BANGERS

Info

Author Phil Lawson
Compatibility Amstrad PCW 8256 / 8512 / 9512
Year 1987
Gender Arcade
Controls Keyboard
Language English
Status Preserved

Screenshots

Description

Danger Uxb is positioned as one of the classics in the world of video games, matching titles like Snake. In fact, Snake was one of the most popular games on computers at the time. Danger Uxb consists of directing a snake to hunt for food. We will have to avoid touching the walls, hitting a stone or touching ourselves, since we will lose a life. The graphics are somewhat more colorful than Snake.

It's November 6, the day after Bonfire Night, and Cecil the Seer Centipede is up and looking for breakfast.

Unfortunately, the garden is full of unexploded bombs that will explode at the slightest touch, so he must be very careful in his search for food.

Like all good centipedes, Cecil grows every time he eats until he reaches normal size. This gives him the added danger of running into himself because ever since the gardener sprayed weed killer all over the place, Cecil's body has been highly toxic. If he accidentally bites himself, which is very possible since he can't find his glasses, death will immediately follow.

Lucky for him, you're very fond of mother nature's creatures and have offered your services to help guide him, and when he finishes one garden, he'll move on to another with more sausages to avoid and more food to eat. There are 15 gardens to complete and if you manage them all you will return to the first one.

As soon as you press a key, Cecil will start moving and won't stop until he has enough food or he dies. Your job is to have enough food or die. Your job is to keep him alive by guiding him, but you'll need to be quick with your fingers and have a keen eye to spot the oncoming danger.

A really entertaining game, with good graphics, but lack of sound as usual on PCW machines.

Listing

  • Listing - DANGER.BAS
10 REM       DANGER UXB
20 REM      by Phil Lawson
30 REM (c) Computing With The Amstrad
40 REM ------------ PCW -------------
50 cls$=CHR$(27)+"E"+CHR$(27)+"H"
60 DEFINT a-z:GOSUB 1180
70 DIM m(30,40),bx(20),by(20)
80 DIM sc(10),sc$(10):FOR a=1 TO 10
90 sc(11-a)=a*100:sc$(a)="PCW":NEXT
100 FOR a=1 TO 30:m(a,1)=2:m(a,40)=2
110 NEXT:FOR a=1 TO 40:m(1,a)=2
120 m(30,a)=2:NEXT
130 win=0:lev=0:score=0:n=50
140 FOR a=2 TO 29:FOR b=2 TO 39
150 m(a,b)=0:NEXT:NEXT:live=-1:l=10
160 f=0:lev=lev+1:IF lev=4 THEN lev=1:IF n<90 THEN n=n+10 ELSE n=50
170 GOSUB 1080:PRINT cls$:POKE pen,255
180 POKE paper,0:POKE double,0
190 GOSUB 1020
200 x=0:y=2:a$="LEVEL":CALL print1(x,y,a$):y=8:a$="SCORE":CALL print1(x,y,a$)
210 x=1:y=14:a$="FOOD"
220 CALL print1(x,y,a$):GOSUB 930
230 x=2:y=4:a$=STR$(lev+(((n/10)-5)*3))
240 CALL print1(x,y,a$)
250 WHILE INKEY$<>"":WEND
260 d=0:WHILE live:a$=INKEY$
270 IF a$="" AND d>0 THEN GOSUB 440:GOTO 340
280 t=0:a$=LOWER$(a$):IF a$="" THEN 350
290 IF a$="z" THEN t=1
300 IF a$="x" THEN t=2
310 IF a$="k" THEN t=3
320 IF a$="m" THEN t=4
330 IF t<>0 THEN d=t:GOSUB 440
340 IF f=n THEN GOSUB 680:live=0:win=-1
350 WEND
360 IF win THEN win=0:GOTO 140
370 POKE paper,85:POKE pen,0:POKE double,1
380 x=30:y=15:a$=" G A M E  O V E R "
390 CALL print1(x,y,a$)
400 FOR a=1 TO 50:POKE pen,255*(a MOD 2)
410 CALL print1(x,y,a$)
420 NEXT:GOSUB 730:y$="":INPUT "AGAIN J/N ",y$:IF UPPER$(y$)="J" THEN GOTO 130 ELSE CLEAR:PRINT CHR$(27)+"e":END:END
430 REM move Cecil
440 m(hy,hx)=4:a$=CHR$(4)
450 x=hx*2+8:y=hy:t1=hx:t2=hy
460 CALL print1(x,y,a$)
470 IF d=1 THEN hx=hx-1
480 IF d=2 THEN hx=hx+1
490 IF d=3 THEN hy=hy-1
500 IF d=4 THEN hy=hy+1
510 IF m(hy,hx)=2 THEN live=0:RETURN
520 IF m(hy,hx)=4 THEN live=0:RETURN
530 a$=CHR$(3):x=hx*2+8:y=hy
540 CALL print1(x,y,a$):t=1
550 IF m(hy,hx)=1 THEN t=0:f=f+1:x=1:y=16:a$=STR$(n-f)+" ":CALL print1(x,y,a$)
560 m(hy,hx)=4:IF t=1 THEN 620
570 score=score+10
580 x=1:y=10:a$=MID$(STR$(score),2)
590 CALL print1(x,y,a$)
600 IF l=20 THEN 620 ELSE l=l+1
610 GOTO 650
620 x=bx(l)*2+8:y=by(l)
630 a$=CHR$(0):CALL print1(x,y,a$)
640 m(by(l),bx(l))=0
650 FOR a=l TO 2 STEP -1
660 bx(a)=bx(a-1):by(a)=by(a-1)
670 NEXT:bx(1)=t1:by(1)=t2:RETURN
680 POKE double,1:POKE paper,85:POKE pen,255
690 x=30:y=15:a$="WELL DONE"
700 CALL print1(x,y,a$):x=35:y=20
710 a$="NEXT LEVEL"
720 CALL print1(x,y,a$):RETURN
730 REM High score table
740 IF score<=sc(10) THEN 850
750 t=0:FOR a=10 TO 1 STEP -1
760 IF sc(a)<score% THEN t=a
770 NEXT:PRINT cls$
780 PRINT "YOU ARE ONE OF THE BETTER PLAYERS"
790 INPUT "Your name:";n$
800 IF LEN(n$)>10 THEN PRINT"Max. 10 chars.":GOTO 790
810 IF t=10 THEN 840
820 FOR a=9 TO t STEP -1:SWAP sc$(a+1),sc$(a)
830 SWAP sc(a+1),sc(a):NEXT
840 sc$(t)=n$:sc(t)=score
850 PRINT cls$:POKE double,1:POKE pen,255:POKE paper,85
860 x=20:y=0:a$="THE BEST PLAYERS":CALL print1(x,y,a$)
870 POKE paper,0:FOR a=1 TO 10
880 x=16:y=a*2+2:a$=STR$(a)+" "+sc$(a)
890 x=x-(2*INT(a/10))
900 CALL print1(x,y,a$):x=45
910 a$=STR$(sc(a)):CALL print1(x,y,a$)
920 NEXT:RETURN
930 y=INT(RND*15)+7:xx=INT(RND*20)+7
940 m(y,xx)=3:hx=xx:hy=y
950 x=xx*2+8:a$=CHR$(3)+" ":CALL print1(x,y,a$)
960 FOR a=xx+1 TO xx+10
970 bx(a-xx)=a:by(a-xx)=y
980 m(y,a)=4:a$=CHR$(4)+" "
990 x=a*2+8:CALL print1(x,y,a$):NEXT
1000 l1x=xx+10:l1y=y:l2x=xx+9:l2y=y
1010 RETURN
1020 FOR a=1 TO 30:FOR b=1 TO 40
1030 IF m(a,b)=0 THEN 1070
1040 a$=CHR$(m(a,b))+" "
1050 x=(b*2)+8:y=a
1060 CALL print1(x,y,a$)
1070 NEXT:NEXT:RETURN
1080 REM set up bangers
1090 FOR a=1 TO (lev*10)*(lev+3)
1100 x=INT(RND*40)+1:y=INT(RND*30)+1
1110 IF m(y,x)<>0 THEN 1100
1120 m(y,x)=2:NEXT
1130 REM set up food
1140 FOR a=1 TO 100
1150 x=INT(RND*40)+1:y=INT(RND*30)+1
1160 IF m(y,x)<>0 THEN 1150
1170 m(y,x)=1:NEXT:RETURN
1180 GOSUB 1260:PRINT cls$+CHR$(27)+"f"
1190 RESTORE 1210:FOR f=0 TO 4:FOR g=0 TO 7:READ n:POKE (udgs+f*8+g),n
1200 NEXT:NEXT:RETURN
1210 DATA 0,0,0,0,0,0,0,0
1220 DATA 24,36,90,165,165,90,36,24
1230 DATA 24,24,126,102,90,90,102,126
1240 DATA 153,126,155,219,255,90,36,24
1250 DATA 24,126,255,255,255,255,126,24
1260 MEMORY &HCFFF
1270 RESTORE 1350:address=&HE000
1280 FOR i=1 TO 31:sum=0:READ code$,check$:FOR j=1 TO 21 STEP 2
1290 byte=VAL("&H"+MID$(code$,j,2)):POKE address,byte:sum=sum+byte
1300 address=address+1:NEXT
1310 IF sum<>VAL("&H"+check$) THEN PRINT "Error in data line";i*10+1340:STOP
1320 NEXT
1330 screen=&HE000:print1=&HE003:udgs=&HD100:pen=&HD001:paper=&HD000
1340 double=&HD006:POKE pen,255:POKE paper,0:POKE double,0:CALL screen:RETURN
1350 DATA C306E0C35BE0CD29E01198,626
1360 DATA 2C2100B60168013E20F5D5,395
1370 DATA 3E0873237223133D20F8D1,3AA
1380 DATA EB09EBF13D20ECC9C1CD5A,6CA
1390 DATA FCE900C9661A6F2202D00A,49B
1400 DATA 3210D0030A6F030A67ED4B,33A
1410 DATA 10D006001113D0EDB02A02,3A3
1420 DATA D0CDFCE02204D02113D022,595
1430 DATA 11D0C9CD30E0CD29E0F32A,67A
1440 DATA 11D07E232211D0CDEAE011,52D
1450 DATA 4FE1010800EDB0DD2A04D0,4B1
1460 DATA 0E08FD214FE12A00D07D06,3E1
1470 DATA 08FDCB0006380D07DDCB08,3D2
1480 DATA 16DDCB001607C3A4E0CB04,4F1
1490 DATA DDCB0816DDCB0016CB04DD,530
1500 DATA CB0816DDCB001610D7FD23,4AE
1510 DATA 3A06D0A7CAD1E0DD7E08DD,672
1520 DATA 7709DD7E00DD7701DD2379,4A9
1530 DATA FE05C2D1E001C802DD094F,576
1540 DATA DD230DC282E02A04D00110,440
1550 DATA 00092204D02110D035C262,359
1560 DATA E0FBC91100B8FE20300311,4CF
1570 DATA 00D16F260029292919C95C,31F
1580 DATA 260054CB25010FE1094E23,2D5
1590 DATA 46EB29292909C93059005C,363
1600 DATA D05EA06170644067106AE0,504
1610 DATA 6CB06F807250752078F07A,544
1620 DATA C07D9080608330860089D0,53F
1630 DATA 8BA08E709140941097E099,5AE
1640 DATA B09C809F50A220A5F0A7C0,679
1650 DATA AA90AD60B0000000000000,2F7

Controls

       Z = LEFT
       X = RIGHT
       K = UP
       M = DOWN

Loading the program

 1.- Insert the CP/M disc on side 2
 2.- Write BASIC and wait for it to load
 3.- Remove the CP/M disk and insert the disk containing the Danger Uxb game
 4.- Type run "Danger" and press the "ENTER" key

Extras

  • Listing of the program in a large-circulation magazine of the time

danger_uxb_01.jpg danger_uxb_02.jpg

Download

Video

en/danger_uxb.txt · Last modified: 2022/06/29 02:01 by jevicac