Herramientas de usuario

Herramientas del sitio


es:dagoba

DAGOBA

Ficha

Autor Jorge Pérez Barreiro
Computadora Amstrad PCW 8256 / 8512 / 9512
Año 1987
Género Naves
Controles Teclado
Lenguajes Español
Estado Preservado

Capturas

Descripción

Juego de naves espaciales con láser, laberintos, tesoros y peligros ocultos. Contiene 200 pantallas diferentes. Atrévete a penetrar en el laberinto de Dagoba, recorriendo sus doscientas pantallas y rescata el famoso tesoro escondido hace muchos años tras sus muros. Para los que os gustan los juegos con muchas pantallas. Una trepidante aventura dentro de un laberinto donde abundan los peligros y secretos. El juego consiste en ir por el laberinto cogiendo las pirámides que hay repartidas por todo el juego, habrá que conseguir las 15 para poder entrar en la cámara del cofre. Solamente tu habilidad y audacia te conducirán a la salida y te colmarán con los tesoros de los antiguos faraones.

Listado

  • Listado - DAGOBA.BAS
1 REM
100 ' ************* D A G O B A **************
101 ' **                                    **
102 ' ** (C) Sept-1987 Jorge Perez Barreiro **
103 ' **         All Rights Reserved        **
105 ' **                                    **
107 ' ****************************************
108 '
110 cls$=CHR$(27)+"E"+CHR$(27)+"H"
120 DEF FN at$(v,h)=CHR$(27)+"Y"+CHR$(32+v)+CHR$(32+h)
130 inverse1$=CHR$(27)+"p"
140 inverse0$=CHR$(27)+"q"
150 cursor1$=CHR$(27)+"e"
160 cursor0$=CHR$(27)+"f"
170 scrab$=CHR$(27)+"L"
180 scrar$=CHR$(27)+"M"
190 DEF FN ventana$(a,b,c,d)=CHR$(27)+"X"+CHR$(32+a)+CHR$(32+b)+CHR$(c-1+32)+CHR$(d-1+32)
200 REM PRINT cursor0$
280 GOSUB 9000
300 DIM a$(10,20)
310 RANDOMIZE PEEK(64504!)
550 GOTO 800
600 DATA "OIIO","OIOI","OIOI","OIOI","OIII","OOII","OIIO","OIII","OIOI","OOII","OIIO","OIII","OOII","OIIO","OIII","OIOI","OOII","OIIO","OOII","OOIO"
610 DATA "IIOO","OOII","OIIO","OOII","IOOO","IIOO","IOOI","IOIO","OIOO","IIII","IOOI","IOIO","IOIO","IOOO","IIIO","OOOI","IOOO","IOOO","IIOO","IOII"
620 DATA "OIIO","IIOI","IOOI","IIIO","OIOI","OOII","OIOO","IOII","OOIO","IIOO","OOII","IOOO","IOIO","OIIO","IOOI","OOIO","OOIO","OIIO","OOOI","IOIO"
630 DATA "IOIO","OIOO","OIOI","IOII","OOIO","IIOO","OOOI","IOIO","IIOO","OIII","IOOI","OIIO","IOOI","IOIO","OIIO","IOOI","IIOO","IIII","OOII","IOIO"
640 DATA "IIIO","OIII","OOII","IIOO","IOII","OIOO","OIII","IIOI","OOOI","IOIO","OIOO","IOOI","OIIO","IIII","IIOI","OOOI","OIIO","IOOI","IOOO","IOIO"
650 DATA "IOOO","IOIO","IOOO","OIOO","IOOI","OOIO","IIOO","OIII","OOOI","IOIO","OIIO","OIII","IOOI","IIIO","OIOI","OIII","IIII","OIOI","OIII","IOOI"
660 DATA "OIIO","IIOI","OIII","OOII","OIIO","IOOI","OIIO","IOII","OIIO","IOOI","IOIO","IOOO","OIOO","IOOI","OOIO","IOIO","IIOO","OOII","IIOO","OOII"
670 DATA "IOIO","OOIO","IOIO","IIOO","IOOI","OIIO","IOOI","IOIO","IIIO","OIOI","IIII","OIOI","OOII","OIIO","IOOI","IOIO","OOIO","IIOO","OOII","IOOO"
680 DATA "IIIO","IOOI","IOIO","OIOO","OOII","IOIO","OIIO","IOOI","IIIO","OOOI","IIIO","OOII","IOIO","IOIO","OIIO","IOOI","IIIO","OIII","IOOI","OOIO"
690 DATA "IIOO","OOOI","IIOO","OIOI","IIOI","IOOI","IIOO","OOOI","IIOO","OIOI","IOOI","IOOO","IOOO","IIOO","IOOI","OIOO","IOOI","IIOO","OIOI","IOOI"
700 DATA 10,1,20,2,5,3,8,4,10,5,10,6,6,7,8,8,0,0
780 READ d,f:IF d=0 THEN RETURN
782 IF d=-1 THEN FOR i=1 TO 100:NEXT i:GOTO 780
784 GOSUB 9340
786 GOTO 780
800 PRINT cls$
850 PRINT FN at$(3,35);"*** D A G O B A ***";FN at$(4,35);"==================="
855 PRINT FN at$(6,32);"AMSTRAD PCW 8256-8512-9512";FN at$(8,20);"(C)1987 Jorge Perez Barreiro  All Rights Reserved"
860 FOR t=89 TO 0 STEP -1:PRINT FN at$(16,t);CHR$(138);FN at$(20,89-t);CHR$(138):NEXT t
865 c$=" "+inverse1$+"-- D A G O B A --"+inverse0$+" "
870 FOR i=0 TO 50:PRINT FN at$(18,i);c$:OUT (248),11:OUT (248),12:NEXT i
875 FOR i=50 TO 28 STEP -1:PRINT FN at$(18,i);c$:OUT (248),11:OUT (248),12:NEXT i
880 FOR t=28 TO 35:PRINT FN at$(18,t);c$:OUT (248),11:OUT (248),12:NEXT t
881 PRINT FN at$(29,35);"*** PLEASE WAIT ***"
883 RESTORE 600:FOR t=1 TO 10:FOR y=1 TO 20:READ a$(t,y):o=INT (RND*8)+1:a$(t,y)=a$(t,y)+STR$(o)+"     ":MID$(a$(t,y),5,1)="0"
884 o=INT (RND*18)+1:MID$(a$(t,y),9,3)=STR$(o)
887 NEXT y:NEXT t
888 d$="":f$="":FOR i=0 TO 89:d$=d$+"-":f$=f$+" ":NEXT i
960 vi=5:pu=0:pi=0:ma=3:la=30:inm=0:tap=0
970 co=43:dr=1
980 RESTORE 700
982 READ r,t:IF r=0 THEN GOTO 1100
988 FOR i=1 TO r
990 p=INT (RND*10)+1:l=INT (RND*20)+1:IF MID$(a$(p,l),8,1)<>" " OR (p=5 AND l=11) THEN GOTO 990
995 MID$(a$(p,l),7,2)=STR$(t)
1000 NEXT i
1005 GOTO 982
1100 l1=INT (RND*10)+1:c1=INT (RND*20)+1:IF MID$(a$(l1,c1),8,1)<>" " OR (l1=5 AND c1=11) THEN GOTO 1100
1200 OUT (248),11:OUT(248),12:FOR i=1 TO 400:NEXT i:PRINT FN at$(29,35);"PULSA UNA TECLA....":FOR I=1 TO 400:NEXT i:PRINT FN at$(29,35);SPC(19)
1205 IF INKEY$="" THEN GOTO 1200
1208 l1=INT (RND*10)+1:c1=INT (RND*20)+1:IF MID$(a$(l1,c1),8,1)<>" " OR (l1=5 AND c1=11) THEN GOTO 1208
1210 FOR i=1 TO 31:PRINT FN at$(0,0);scrar$:NEXT i
1400 GOSUB 7000
1405 IF l1=5 AND c1=11 THEN GOTO 7400
1410 GOSUB 8000
1420 GOSUB 2100
1700 IF dr=1 THEN PRINT FN at$(21,co);CHR$(154);CHR$(139)
1705 IF dr=2 THEN PRINT FN at$(21,co);CHR$(139);CHR$(154)
1750 IF fle=1 THEN GOSUB 3400
1753 h$=INKEY$
1755 IF h$="o" THEN GOTO 6200
1760 IF h$="p" THEN GOTO 6300
1770 IF h$="q" AND co>41 AND co<46 AND MID$(a$(l1,c1),1,1)="I" THEN GOTO 6400
1775 IF h$="a" AND co>41 AND co<46 AND MID$(a$(l1,c1),3,1)="I" THEN GOTO 6500
1778 IF h$=" " AND la>0 THEN GOTO 6600
1779 IF h$="m" AND ma>0 THEN GOTO 8500
1780 REM
2000 GOTO 1750
2100 fle=0:g$=MID$(a$(l1,c1),8,1):IF g$=" " THEN cosu=96:RETURN
2101 IF g$="7" THEN GOTO 2510
2102 cosu=INT (RND*65)+10:IF cosu>39 AND cosu<47 THEN GOTO 2102
2105 x$=MID$(a$(l1,c1),8,1)
2110 IF x$="1" THEN c1$=inverse1$+CHR$(123)+CHR$(123)+inverse0$:c2$=CHR$(131)+CHR$(137)
2115 IF x$="2" THEN c1$=CHR$(47)+CHR$(217):c2$=inverse1$+CHR$(46)+CHR$(46)+inverse0$
2120 IF x$="3" THEN c1$=CHR$(150)+CHR$(156):c2$=inverse1$+CHR$(146)+CHR$(32)+inverse0$
2125 IF x$="4" THEN c1$=CHR$(151)+CHR$(154):c2$=inverse1$+CHR$(45)+CHR$(45)+inverse0$
2130 IF x$="5" THEN c1$=inverse1$+CHR$(139)+CHR$(143)+inverse0$:c2$=inverse1$+CHR$(142)+CHR$(137)+inverse0$
2135 IF x$="6" THEN c1$=inverse1$+CHR$(253)+CHR$(252)+inverse0$:c2$=inverse1$+CHR$(94)+CHR$(94)+inverse0$
2140 IF x$="8" THEN c1$=CHR$(188)+CHR$(188):c2$=inverse1$+CHR$(188)+CHR$(188)+inverse0$
2450 PRINT FN at$(20,COSu);c1$:PRINT FN at$(21,COSu);c2$
2500 RETURN
2510 cosu=96
2512 g1=INT (RND*10)+3:g3=INT (RND*10)+3:g5=INT (RND*10)+3
2515 g2=INT (RND*83)+3:g4=INT (RND*83)+3:g6=INT (RND*83)+3
2520 fle=1:RETURN
2700 REM
2730 PRINT FN at$(20,cosu);"  ";FN at$(21,cosu);"  "
2735 k$=MID$(a$(l1,c1),8,1):IF k$="1" THEN pu=pu+200:GOSUB 8100:GOTO 6750
2740 IF k$="2" THEN pi=pi+1:RESTORE 8715:GOSUB 780:pu=pu+500
2745 IF k$="3" THEN inm=inm+3:RESTORE 8720:GOSUB 780:pu=pu+50
2750 IF k$="4" THEN d=0.01:FOR i=0 TO 2:FOR f=0 TO 11 STEP 2:GOSUB 9340:NEXT f:NEXT i:la=la+15:pu=pu+25
2752 IF k$="8" THEN RESTORE 8735:GOSUB 780:MID$(a$(l1,c1),8,1)=" ":GOTO 6800
2755 IF k$="5" THEN ma=ma+1:RESTORE 8725:GOSUB 780:pu=pu+75
2757 IF k$="6" THEN RESTORE 8730:GOSUB 780:p$="* POSICION AL AZAR *":GOSUB 6900:pu=pu+200:GOTO 1208
2760 GOSUB 8100
2762 cosu=99
2765 MID$(a$(l1,c1),8,1)=" "
2790 ON dr GOTO 6218,6318
3000 FOR i=20 TO 5 STEP -1:PRINT FN at$(i,cosu);inverse1$;CHR$(162);CHR$(162);inverse0$;FN at$(i+1,cosu);CHR$(149);CHR$(149):f=i/2:d=0.007:GOSUB 9340:NEXT i
3005 FOR i=5 TO 20:PRINT FN at$(i,cosu-1);CHR$(133);FN at$(i,cosu+2);CHR$(133);FN at$(i+1,cosu-1);CHR$(188);FN at$(i+1,cosu+2);CHR$(188):NEXT i
3007 p$="CHUY EL ANDROIDE TE HA ELIMINADO":GOSUB 6900
3010 GOTO 6800
3050 d=0.01:FOR i=21 TO 15 STEP -1:PRINT FN at$(i,cosu);inverse1$;CHR$(58);CHR$(58);inverse0$:f=3:GOSUB 9340:f=9:GOSUB 9340:NEXT i
3055 PRINT FN at$(15,cosu-1);CHR$(217);FN at$(15,cosu+2);CHR$(47);FN at$(14,cosu-1);CHR$(134);CHR$(138);CHR$(138);CHR$(140);inverse0$
3060 PRINT FN at$(13,cosu);inverse1$;CHR$(46);CHR$(46);inverse0$;FN at$(12,cosu);CHR$(47);CHR$(217):p$="PIRAMIDE EXTRA":GOSUB 6900
3065 pi=pi+1:GOTO 1210
3100 FOR i=21 TO 17 STEP -1:PRINT FN at$(i,cosu);inverse1$;CHR$(58);CHR$(58);inverse0$:f=5:d=0.01:GOSUB 9340:f=9:d=0.06:GOSUB 9340:NEXT i
3105 FOR i=cosu-1 TO cosu-4 STEP -1:PRINT FN at$(17,i);CHR$(123);FN at$(17,i+6);CHR$(123):NEXT i
3110 FOR i=17 TO 21:PRINT FN at$(i,cosu-4);CHR$(133);FN at$(i,cosu+5);CHR$(133):NEXT i
3115 p$="* 1500 * BONOS EXTRA":GOSUB 6900
3120 pu=pu+1500:GOSUB 8100
3125 FOR i=17 TO 21:PRINT FN at$(i,cosu-4);SPC(10):NEXT i
3130 GOTO 1750
3150 FOR i=1 TO 85:PRINT FN at$(21,i);CHR$(154);CHR$(157)
3152 IF i>=co THEN PRINT FN at$(21,i+2);CHR$(139);CHR$(154)
3155 NEXT i
3175 co=87:PRINT FN at$(21,87);"  ":GOTO 6800
3200 FOR i=0 TO 23:PRINT FN at$(0,0);scrar$:NEXT i
3205 FOR i=0 TO 89:PRINT FN at$(5,i);inverse1$;CHR$(191);inverse0$:NEXT i
3210 csq=1:FOR i=8 TO 27 STEP 2:PRINT FN at$(i,27);CHR$(134);CHR$(138);CHR$(138);CHR$(140)
3211 PRINT FN at$(i+1,24);csq;FN at$(i+1,31);csq:csq=csq+1
3215 PRINT FN at$(i+1,27);CHR$(131);CHR$(138);CHR$(138);CHR$(137):NEXT i
3220 p$="SELECCION DE PISO CON LAS TECLAS:Q,A y SAPACE":GOSUB 6900
3230 pw=(l1*2)+7
3235 PRINT FN at$(pw,22);CHR$(252);FN at$(pw,35);CHR$(253)
3240 y$=INKEY$
3242 pq=pw
3245 IF y$="q" AND pw>9 THEN pw=pw-2:l1=l1-1:GOTO 3300
3250 IF y$="a" AND pw<27 THEN pw=pw+2:l1=l1+1:GOTO 3300
3255 IF y$=" " THEN GOTO 3310
3260 GOTO 3240
3300 f=7:d=0.006:GOSUB 9340:f=4:d=0.006:GOSUB 9340:PRINT FN at$(1,80);l1:PRINT FN at$(pq,22);" ";FN at$(pq,35);" ":GOTO 3235
3310 PRINT FN at$(5,0);SPC(89);" ":FOR i=0 TO 23:PRINT FN at$(0,0);scrab$:NEXT i:flag=1:GOTO 1400
3400 REM
3450 PRINT FN at$(g1,g2);" ";FN at$(g3,g4);" ";FN at$(g5,g6);" ":g1=g1+1:g3=g3+1:g5=g5+1
3460 PRINT FN at$(g1,g2);CHR$(254);FN at$(g3,g4);CHR$(248);FN at$(g5,g6);CHR$(166)
3465 IF g1=22 OR g3=22 OR g5=22 THEN GOTO 6800
3470 RETURN
3600 FOR i=0 TO 31:PRINT FN at$(0,0);scrab$:NEXT i
3610 PRINT FN at$(0,0);:FOR i=0 TO 89:PRINT "*";:NEXT i
3612 FOR i=1 TO 28:PRINT FN at$(i,0);"*";FN at$(i,89);"*":NEXT i
3615 PRINT FN at$(29,0);:FOR i=0 TO 89:PRINT "*";:NEXT i
3625 PRINT FN at$(3,33);">> G A M E  O V E R <<"
3630 PRINT FN at$(8,26);"TU FLOTA DE NAVES HA SIDO DESTRUIDA"
3635 PRINT FN at$(10,26);"TU PUNTUACION ES DE";pu;"PUNTOS"
3640 PRINT FN at$(12,26);"HAS COMPLETADO EL";tap/2;"% DE TU MISION"
3645 RESTORE 8745:GOSUB 780
3650 PRINT FN at$(27,26);"] QUIERES JUGAR OTRA PARTIDA ? (S/N)"
3652 h$=INKEY$
3655 IF h$="" THEN GOTO 3652
3660 IF h$="s" THEN RUN
3665 IF h$="n" THEN PRINT cls$:PRINT cursor1$:END
3670 GOTO 3652
4000 PRINT inverse1$:FOR i=4 TO 15 STEP 3:PRINT FN at$(i,1);SPC(35);FN at$(i,54);SPC(35)
4002 NEXT i
4003 PRINT inverse0$
4005 RETURN
4010 in1=3:in2=12
4015 PRINT FN at$(in1,in2);CHR$(47);FN at$(in1,89-in2);CHR$(217)
4017 in1=in1+1:in2=in2-1
4018 IF in1=15 THEN RETURN
4020 GOTO 4015
4025 PRINT inverse1$:FOR i=3 TO 12:PRINT FN at$(i,35);CHR$(149):NEXT i:PRINT inverse0$
4030 PRINT FN at$(13,33);CHR$(150);CHR$(154);CHR$(154);CHR$(154);CHR$(156):FOR i=14 TO 16:PRINT FN at$(i,33);CHR$(149);CHR$(253);" ";CHR$(252);CHR$(149):NEXT i
4032 PRINT FN at$(17,33);CHR$(147);CHR$(154);CHR$(154);CHR$(154);CHR$(153)
4033 RETURN
4035 FOR i=1 TO 40
4037 lz=INT (RND*14)+3
4038 cz=INT (RND*88)+1:IF cz>39 AND cz<48 THEN GOTO 4038 ELSE PRINT FN at$(lz,cz);".":NEXT i:RETURN
4039 RETURN
4040 PRINT inverse1$:spa=10:FOR t=3 TO 12:PRINT FN at$(t,1);SPC(spa);FN at$(t,41-spa);SPC(spa)
4041 PRINT FN at$(t,48);SPC(spa);FN at$(t,89-spa);SPC(spa)
4042 spa=spa-1:NEXT t
4045 PRINT inverse0$:RETURN
4050 FOR i=1 TO 50
4052 lz=INT (RND*14)+3
4055 cz=INT (RND*87)+1:IF cz>39 AND cz<48 THEN GOTO 4055 ELSE PRINT FN at$(lz,cz);CHR$(95);CHR$(95):NEXT i:RETURN
4057 RETURN
4060 PRINT inverse1$:spa=1:FOR i=3 TO 17:PRINT FN at$(i,1);LEFT$(d$,spa);FN at$(i,89-spa);LEFT$(d$,spa)
4065 spa=spa+1:NEXT i:PRINT inverse0$:RETURN
4070 FOR i=3 TO 16:PRINT FN at$(i,41);CHR$(149);"     ";CHR$(149):NEXT i
4074 PRINT FN at$(17,1);:FOR i=1 TO 40:PRINT CHR$(154);:NEXT i:PRINT CHR$(153)
4075 PRINT FN at$(17,47);CHR$(147);:FOR i=1 TO 41:PRINT CHR$(154);:NEXT i
4076 t$="[ GOOD LUCK !":PRINT FN at$(10,14);inverse1$;t$;FN at$(10,63);t$;inverse0$
4078 RETURN
4080 spa=1:FOR i=4 TO 16 STEP 2:PRINT FN at$(i,spa);:FOR o=0 TO 19:PRINT CHR$(45);CHR$(95);:NEXT o
4082 IF spa=1 THEN spa=49:GOTO 4086
4084 spa=1
4086 NEXT i:RETURN
4090 FOR i=1 TO 40 STEP 1:FOR t=3 TO INT (RND*10)+3:PRINT FN at$(t,i);CHR$(149):NEXT t:NEXT i
4094 FOR i=48 TO 88 STEP 1:FOR t=3 TO INT (RND*10)+3:PRINT FN at$(t,i);CHR$(149):NEXT t:NEXT i
4098 RETURN
4100 FOR o=0 TO 1
4105 IF o=0 THEN az1=INT (RND*8)+4:az2=INT (RND*18)+2:az3=INT(RND*(17-az1))+2:az4=INT (RND*(39-az2))+2
4108 IF o=1 THEN az1=INT (RND*8)+4:az2=INT (RND*20)+48:az3=INT(RND*(17-az1))+2:az4=INT (RND*(85-az2))+2
4110 PRINT FN at$(az1,az2);CHR$(134);:FOR i=1 TO az4:PRINT CHR$(138);:NEXT i:PRINT CHR$(140)
4115 FOR i=az1+1 TO (az1+az3)-1:PRINT FN at$(i,az2);CHR$(133);FN at$(i,az2+az4+1);CHR$(133):NEXT i
4120 PRINT FN at$(az1+az3,az2);CHR$(131);:FOR i=1 TO az4:PRINT CHR$(138);:NEXT i:PRINT CHR$(137)
4125 NEXT o
4130 RETURN
4150 o$="­­­­­":spa=5:FOR i=3 TO 7:PRINT FN at$(i,81+i);LEFT$(o$,spa):spa=spa-1:NEXT i
4155 FOR i=6 TO INT(RND*8)+9:PRINT FN at$(i,86);CHR$(149):NEXT i
4158 PRINT FN at$(i,85);CHR$(60);CHR$(34);CHR$(62)
4160 RETURN
4180 PRINT inverse1$:FOR o=0 TO 1
4185 IF o=0 THEN az1=INT (RND*8)+5:az2=INT (RND*20)+15:az3=INT (RND*(15-az1))+3
4188 IF o=1 THEN az1=INT (RND*8)+5:az2=INT (RND*20)+50:az3=INT (RND*(15-az1))+3
4190 FOR i=az1 TO az1+az3:PRINT FN at$(i,az2);CHR$(159):NEXT i
4195 x1=az1+(az3/2):x2=az2-(az3/2):PRINT FN at$(x1,x2);:FOR i=1 TO az3:PRINT CHR$(159);:NEXT i
4200 NEXT o
4205 PRINT inverse0$:RETURN
5000 STOP
6200 IF co=1 AND MID$(a$(l1,c1),4,1)="O" THEN GOTO 1780
6210 IF co=0 THEN c1=c1-1:co=88:GOTO 1400
6215 dr=1:co=co-1
6216 IF co-1=cosu THEN GOTO 2700
6218 PRINT FN at$(21,co+1);"  ";FN at$(21,co);CHR$(154);CHR$(139)
6220 h$=INKEY$:GOTO 1778
6300 IF co=87 AND MID$(a$(l1,c1),2,1)="O" THEN GOTO 1780
6310 IF co=88 THEN c1=c1+1:co=1:GOTO 1400
6315 dr=2:co=co+1
6316 IF co+1=cosu THEN GOTO 2700
6318 PRINT FN at$(21,co-1);"  ";FN at$(21,co);CHR$(139);CHR$(154)
6320 h$=INKEY$:GOTO 1778
6400 FOR i=20 TO 0 STEP -1:PRINT FN at$(i+1,co);"  ";FN at$(i,co);CHR$(154);CHR$(139):NEXT i
6405 l1=l1-1:GOTO 1400
6500 FOR i=46 TO 42 STEP -1:PRINT FN at$(22,i);" ":OUT (248),11:OUT (248),12:NEXT i
6510 FOR i=21 TO 23:PRINT FN at$(i-1,co);"  ";FN at$(i,co);CHR$(154);CHR$(139):NEXT i
6515 l1=l1+1:dr=1:GOSUB 7000:GOSUB 8000:GOSUB 2100:FOR i=1 TO 21:PRINT FN at$(i-1,co);"  ";FN at$(i,co);CHR$(154);CHR$(139):NEXT i:GOTO 1780
6600 la=la-1:OUT (248),11:OUT (248),12:IF dr=1 THEN PRINT FN at$(21,1);MID$(d$,1,co-1):PRINT FN at$(21,1);MID$(f$,1,co-1)
6605 IF dr=2 THEN PRINT FN at$(21,co+2);MID$(d$,1,87-co):PRINT FN at$(21,co+2);MID$(f$,1,87-co)
6606 GOSUB 8100
6607 IF cosu>90 THEN GOTO 6650
6610 IF (co<cosu AND dr=2) OR (co>cosu AND dr=1) THEN FOR i=1 TO 5:PRINT FN at$(20,cosu);CHR$(217);CHR$(47);FN at$(21,cosu);CHR$(47);CHR$(217) ELSE GOTO 6650
6612 f=4:d=0.006:GOSUB 9340:f=9:d=0.008:GOSUB 9340:f=6:d=0.05:GOSUB 9340
6615 PRINT FN at$(20,cosu);CHR$(96);CHR$(179);FN at$(21,cosu);CHR$(179);CHR$(96)
6616 f=6:d=0.04:GOSUB 9340:f=2:d=0.02:GOSUB 9340:f=8:d=0.01:GOSUB 9340
6620 NEXT i:PRINT FN at$(20,cosu);"  ";FN at$(21,cosu);"  "
6625 k$=MID$(a$(l1,c1),8,1):cosu=200:MID$(a$(l1,c1),8,1)=" ":IF k$="8" THEN GOTO 1750 ELSE GOTO 6800
6650 IF fle=0 THEN GOTO 1750
6652 IF (dr=1 AND g2<co) OR (dr=2 AND g2>co) THEN IF g1=21 THEN pu=pu+150:GOSUB 8100:g1=3:g2=INT (RND*85)+3
6654 IF (dr=1 AND g4<co) OR (dr=2 AND g4>co) THEN IF g3=21 THEN pu=pu+150:GOSUB 8100:g3=3:g4=INT (RND*85)+3
6656 IF (dr=1 AND g6<co) OR (dr=2 AND g6>co) THEN IF g5=21 THEN pu=pu+150:GOSUB 8100:g5=3:g6=INT (RND*85)+3
6690 GOTO 1750
6750 RESTORE 8710:GOSUB 780
6755 MID$(a$(l1,c1),8,1)=" "
6760 so=INT (RND*5)+1
6765 ON so GOTO 3000,3050,3100,3150,3200
6766 PRINT "ERROR 6766":STOP
6800 IF inm=0 THEN GOTO 6801 ELSE inm=inm-1:GOSUB 8100:RESTORE 8740:GOSUB 780:GOTO 1210
6801 d=0.0025:FOR i=1 TO 20:PRINT FN at$(21,co-1);inverse1$;" ";CHR$(139);CHR$(154);" ";inverse0$:f=INT (RND*12):GOSUB 9340:PRINT FN at$(21,co-1);" ";CHR$(139);CHR$(154);" ":NEXT i
6802 PRINT FN at$(21,co-1);"    "
6805 vi=vi-1:IF vi=-1 THEN GOTO 3600
6810 FOR i=8 TO 10:PRINT FN at$(i,33);"******************":NEXT i:PRINT FN at$(9,33);inverse1$;"* UNA NAVE MENOS *";inverse0$
6812 d=0.04:FOR f=1 TO 11:GOSUB 9340:NEXT f
6815 d=0.04:FOR f=11 TO 1 STEP -1:GOSUB 9340:NEXT f:GOTO 1210
6900 LOCl=(89-LEN(p$))/2
6905 FOR i=1 TO 10:PRINT FN at$(29,LOCl);inverse1$;p$;inverse0$:f=i:d=0.1:GOSUB 9340:f=i-1:d=0.07:GOSUB 9340
6910 PRINT FN at$(29,LOCl);p$
6915 NEXT i:PRINT FN at$(29,0);SPC(85)
6920 RETURN
6999 STOP
7000 IF flag=1 THEN flag=0:GOTO 7005
7002 PRINT cls$
7005 PRINT FN at$(0,0);inverse1$;f$;inverse0$
7010 b$=a$(l1,c1)
7020 t$=MID$(a$(l1,c1),6,1)
7030 s$=CHR$(143)+CHR$(188)+CHR$(187)+CHR$(255)+CHR$(133)+CHR$(155)+CHR$(95)+CHR$(161)+CHR$(166)+CHR$(180)
7035 u=VAL(t$)
7050 w$=MID$(s$,u,1)
7055 PRINT FN at$(2,0);:FOR i=0 TO 89:PRINT w$;:NEXT i
7060 PRINT FN at$(0,0);CHR$(134):PRINT FN at$(0,89);CHR$(140)
7062 PRINT FN at$(0,1);:FOR i=1 TO 22:PRINT CHR$(138);CHR$(138);CHR$(138);CHR$(138);:NEXT i
7065 FOR i=1 TO 21:PRINT FN at$(i,0);CHR$(133);FN at$(i,89);CHR$(133):NEXT i
7070 PRINT FN at$(22,0);CHR$(131);FN at$(22,89);CHR$(137)
7071 PRINT FN at$(22,1);:FOR i=1 TO 22:PRINT CHR$(138);CHR$(138);CHR$(138);CHR$(138);:NEXT i
7072 PRINT FN at$(23,0);:FOR i=0 TO 89:PRINT w$;:NEXT i
7100 IF MID$(a$(l1,c1),1,1)="I" THEN PRINT FN at$(0,41);CHR$(156);"     ";CHR$(150);FN at$(1,41);CHR$(149);"     ";CHR$(149);FN at$(2,41);CHR$(153);"     ";CHR$(147)
7105 IF MID$(a$(l1,c1),3,1)="I" THEN PRINT FN at$(22,41);CHR$(156);:FOR i=1 TO 5:PRINT CHR$(154);:NEXT i:PRINT CHR$(150);FN at$(23,41);CHR$(153);"     ";CHR$(147)
7110 IF MID$(a$(l1,c1),4,1)="I" THEN PRINT FN at$(18,0);inverse1$;"  ";inverse0$;CHR$(157);FN at$(22,0);CHR$(138):FOR i=19 TO 21:PRINT FN at$(i,0);" ":NEXT i
7115 IF MID$(a$(l1,c1),2,1)="I" THEN PRINT FN at$(18,87);CHR$(151);inverse1$;"  ";inverse0$;FN at$(22,89);CHR$(138):FOR i=19 TO 21:PRINT FN at$(i,89);" ":NEXT i
7200 IF MID$(a$(l1,c1),5,1)="0" THEN MID$(a$(l1,c1),5,1)="1":tap=tap+1
7210 IF MID$(a$(l1,c1),8,1)="7" OR (l1=5 AND c1=11) THEN RETURN
7220 u=VAL(MID$(a$(l1,c1),9,3))
7230 ON u GOTO 4000,4010,4025,4035,4040,4050,4060,4070,4080,4090,4100,4100,4100,4150,4150,4180,4180,4180
7300 RETURN
7400 PRINT FN at$(21,85);CHR$(154);CHR$(139):k$="":j$="":FOR i=0 TO 50:j$=j$+CHR$(133):k$=k$+CHR$(46):NEXT i
7410 clk=4:ip=48:FOR i=21 TO 7 STEP -1:PRINT FN at$(i,clk);inverse1$;MID$(j$,1,ip);inverse0$:clk=clk+2:ip=ip-2
7420 NEXT i
7440 ip=20:FOR i=21 TO 13 STEP -1:PRINT FN at$(i,52);inverse1$;MID$(k$,1,ip);inverse0$:ip=ip-1
7450 NEXT i
7460 PRINT FN at$(8,58);CHR$(159);CHR$(138);CHR$(158)
7465 PRINT FN at$(9,58);CHR$(149);" ";CHR$(200)
7470 PRINT FN at$(10,57);inverse1$;SPC(5);inverse0$
7475 PRINT FN at$(11,59);CHR$(133);FN at$(12,59);CHR$(133)
7500 FOR i=7 TO 19:PRINT FN at$(i,38);SPC(8):NEXT i
7505 FOR i=16 TO 19:PRINT FN at$(i,36);SPC(12):NEXT i
7520 PRINT FN at$(19,37);CHR$(158);:FOR i=1 TO 8:PRINT CHR$(154);:NEXT i:PRINT CHR$(158)
7540 cr1=16:cr2=40:GOSUB 7800
7545 cr1=5:cr2=36:GOSUB 7820
7560 IF pi<15 THEN GOTO 7840
7565 FOR cr2=36 TO 26 STEP -1:GOSUB 7820:f=cr2/3.5:d=0.01:GOSUB 9340:NEXT cr2
7570 PRINT FN at$(24,33);"** FELICIDADES **"
7580 PRINT FN at$(25,20);"EL TESORO DE LA FORTALEZA DE DAGOBA ES TUYO"
7585 RESTORE 8750:GOSUB 780
7590 GOTO 3650
7700 STOP
7800 PRINT inverse1$:PRINT FN at$(cr1,cr2);CHR$(134);CHR$(58);CHR$(58);CHR$(140)
7805 PRINT FN at$(cr1+1,cr2);CHR$(133);"  ";CHR$(133)
7810 PRINT FN at$(cr1+2,cr2);CHR$(131);CHR$(138);CHR$(138);CHR$(137);inverse0$
7815 RETURN
7820 PRINT FN at$(cr1,cr2);inverse1$;SPC(12);inverse0$;" "
7825 PRINT FN at$(cr1+1,cr2);inverse1$;SPC(12);inverse0$;" "
7835 RETURN
7840 FOR i=59 TO 85:PRINT FN at$(8,i);CHR$(138);CHR$(158);FN at$(9,i);" ";CHR$(200):f=11:d=0.0004:GOSUB 9340:NEXT i
7845 FOR i=9 TO 20:f=6:d=0.004:GOSUB 9340:f=3:d=0.004:GOSUB 9340:PRINT FN at$(i,86);" ";FN at$(i+1,86);CHR$(200):NEXT i
7850 p$="TE FALTABAN PIRAMIDES":GOSUB 6900:GOTO 3600
7900 STOP
8000 PRINT FN at$(24,0);:FOR i=0 TO 89:PRINT CHR$(191);:NEXT i
8005 PRINT FN at$(25,25);" PIRAMIDES  LASER   MAPAS  ESCUDOS"
8010 FOR i=1 TO 4:PRINT FN at$(26,i*8+20);CHR$(150);CHR$(154);CHR$(154);CHR$(154);CHR$(154);CHR$(156)
8015 PRINT FN at$(28,i*8+20);CHR$(147);CHR$(154);CHR$(154);CHR$(154);CHR$(154);CHR$(153)
8017 PRINT FN at$(27,i*8+20);CHR$(149);"    ";CHR$(149)
8020 NEXT i
8030 PRINT FN at$(25,66);inverse1$;"*****";FN at$(27,66);"*****";inverse0$;FN at$(25,73);CHR$(252);FN at$(27,73);CHR$(252)
8100 PRINT FN at$(25,0);"NAVES: ";:FOR i=1 TO vi:PRINT CHR$(139);CHR$(154);CHR$(32);:NEXT i
8105 PRINT FN at$(27,0);"PUNTOS:";pu;FN at$(25,75);"PISO:";l1;FN at$(27,75);"CAMARA:";c1
8110 PRINT FN at$(27,29);pi;FN at$(27,37);la;FN at$(27,45);ma;FN at$(27,53);inm
8480 RETURN
8499 STOP
8500 ma=ma-1:PRINT cls$:FOR i=0 TO 29:PRINT FN at$(i,64);CHR$(149):NEXT i:PRINT FN at$(0,68);"* MAPA DE DAGOBA *";FN at$(1,68);"=================="
8502 PRINT FN at$(4,68);"p=PIRAMIDES";FN at$(6,68);"c=COFRES";FN at$(8,68);"m=VIDEOMAPAS";FN at$(10,68);"i=ESCUDOS";FN at$(12,68);"l=CARGAS LASER";FN at$(14,68);"e=ENEMIGOS"
8504 PRINT FN at$(16,68);"b=BURLADEROS";FN at$(18,68);"o=OBSTACULOS";FN at$(20,68);"x=POSICION NAVE";FN at$(22,68);inverse1$;"T";inverse0$;"=TEMPLO"
8507 j$="cpilmbeo"
8508 FOR t=1 TO 10:FOR y=1 TO 20
8510 b$=a$(t,y)
8515 PRINT FN at$(t*3-3,y*3);CHR$(134);" ";CHR$(140):PRINT FN at$((t*3-3)+2,y*3);CHR$(131);" ";CHR$(137)
8520 IF MID$(b$,1,1)="O" THEN PRINT FN at$(t*3-3,y*3+1);CHR$(154)
8525 IF MID$(b$,2,1)="O" THEN PRINT FN at$(t*3-3+1,y*3+2);CHR$(149)
8530 IF MID$(b$,3,1)="O" THEN PRINT FN at$(t*3-3+2,y*3+1);CHR$(154)
8535 IF MID$(b$,4,1)="O" THEN PRINT FN at$(t*3-3+1,y*3);CHR$(149)
8540 k$=MID$(b$,8,1):IF k$<>" " THEN PRINT FN at$(t*3-3+1,y*3+1);MID$(j$,VAL(k$),1)
8560 NEXT y:NEXT t
8565 PRINT FN at$(29,70);"* PULSA SPACE *"
8570 PRINT FN at$(13,34)inverse1$;"T";inverse0$
8600 FOR i=1 TO 500:NEXT i:PRINT FN at$(l1*3-3+1,c1*3+1);"x":FOR i=1 TO 500:NEXT i
8605 PRINT FN at$(l1*3-3+1,c1*3+1);" ":FOR i=1 TO 200:NEXT i
8610 k$=MID$(a$(l1,c1),8,1):IF k$<>" " THEN PRINT FN at$(l1*3-3+1,c1*3+1);MID$(j$,VAL(k$),1)
8690 y$=INKEY$:IF y$=" " THEN GOTO 1400
8700 GOTO 8600
8710 DATA .05,3,.1,2,.03,7,.2,5,.06,10,0,0
8715 DATA .1,7,.15,6,-1,0,.04,6,.02,7,.2,9,.3,10,0,0
8720 DATA .2,11,.1,8,.04,10,.1,8,.1,5,0,0
8725 DATA .3,2,.3,10,.3,1,.3,0,.5,1,0,0
8730 DATA .1,8,.05,1,.08,11,0,0
8735 DATA .04,1,.06,11,.1,5,0,0
8740 DATA .3,11,.2,9,.1,6,.06,3,.03,7,.02,8,.01,9,0,0
8745 DATA .6,0,-1,0,.6,0,-1,0,.2,0,.4,0,-1,0,.2,0,.5,1,-1,0,.2,0,.4,0,-1,0,.2,0,.5,0,0,0
8750 DATA .5,9,.1,4,.5,4,.1,7,.5,7,.1,5,.1,7.,1,8,0,0,
8800 RESTORE 8725:GOSUB 780
8999 STOP
9000 REM BEEP
9010 MEMORY 61999!
9020 RESTORE 9060:FOR n=62000! TO 62091!
9030 READ d
9040 POKE n,d
9050 NEXT n
9060 DATA 229,213,197,221,229,42,75,242,237,91,73,242,205,77,242,62
9070 DATA 12,211,248,221,225,193,209,225,201,0,0,0,0,243,125,203
9080 DATA 61,203,61,47,230,3,79,6,0,221,33,97,242,221,9,62
9090 DATA 11,0,0,0,4,12,13,32,253,14,63,5,32,248,60,254
9100 DATA 13,32,2,61,61,211,248,68,79,254,11,32,9,122,179,40
9110 DATA 9,121,77,27,221,233,77,12,221,233,251,201
9130 a=62000!
9140 b=62025!
9150 c=62027!
9160 DIM e(12)
9170 FOR n=0 TO 11
9180 READ f
9190 e(n)=f
9200 NEXT n
9210 DATA 261.63
9220 DATA 277.18
9230 DATA 293.66
9240 DATA 311.13
9250 DATA 329.63
9260 DATA 349.23
9270 DATA 369.99
9280 DATA 392.00
9290 DATA 415.30
9300 DATA 440.00
9310 DATA 466.16
9320 DATA 493.88
9330 RETURN
9340 IF f<0 THEN PRINT "ERROR: F NO PUEDE SE MENOR QUE 0":STOP
9350 f2=e(f)
9360 t=3500000!/(f2*2):t=INT(t/4-30.125)
9370 IF t<0 THEN t=1
9380 f2=INT(f2*d)
9390 IF f2<0 THEN f2=1
9400 POKE b,f2-256*INT(f2/256)
9410 POKE b+1,INT(f2/256)
9420 POKE c,t-256*INT(t/256)
9430 POKE c+1,INT(t/256)
9440 CALL a
9450 RETURN
9998 STOP
9999 CLEAR:SAVE "dagoba"

Controles

      Q = ARRIBA
      A = ABAJO
      P = DERECHA
      O = IZQUIERDA
      M = MAPA
ESPACIO = DISPARAR LASER

Carga del programa

1.- Introducir el disco CP/M por la cara 2
2.- Escribir BASIC y esperar a que cargue
3.- Retirar el disco CP/M e introducir el disco que contiene el juego Dagoba
4.- Teclear run "Dagoba" y pulsar la tecla "ENTER"

Extras

  • Listado del programa en revistas de gran tirada de la época

dagoba_programa_01.jpg dagoba_programa_02.jpg dagoba_programa_03.jpg dagoba_programa_04.jpg dagoba_programa_05.jpg

dagoba_programa_06.jpg dagoba_programa_07.jpg dagoba_programa_08.jpg dagoba_programa_09.jpg

Descarga

  • Dagoba (juego en formato dsk, comprimido con zip)

Enlaces

es/dagoba.txt · Última modificación: 2022/06/30 10:45 por jevicac