====== DANGER UNEXPLODED BANGERS ====== {{:otros:Danger_uxb_p1.jpg?690|}} ===== Info ===== ^ Author | Phil Lawson | ^ Compatibility | Amstrad PCW 8256 / 8512 / 9512 | ^ Year | 1987 | ^ Gender | Arcade | ^ Controls | Keyboard | ^ Language | English | ^ Status | [[preserved|Preserved]] | ===== Screenshots ===== {{:otros:Danger_uxb_screenshot01.png?220}} {{:otros:Danger_uxb_screenshot02.png?220}} {{:otros:Danger_uxb_screenshot03.png?220}} {{:otros:Danger_uxb_screenshot04.png?220}} ===== 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)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 {{:otros:Danger_uxb_01.jpg?170}} {{:otros:Danger_uxb_02.jpg?170}} ===== Download ===== * {{:otros:Danger Uxb (Basic).zip|Danger Uxb }}(game in dsk format, compressed with zip) ===== Video ===== {{ youtube>5-hH1molz-4?large }}