Herramientas de usuario

Herramientas del sitio


es:dracos

DRACOS

Ficha

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

Capturas

Descripción

Juego de laberintos con grandes gráficos. El juego es realmente bueno con unos gráficos increíbles. Nuestra misión es dirigir a nuestro simpático fantasma parecido al del come-cocos por las diferentes pantallas que forman un auténtico laberinto. Por las pantallas nos vamos a encontrar con cofres, los cuáles tenemos que recogerlos los tres para cumplir nuestro objetivo, mapas los cuales al cogerlos nos mostraran en la parte inferior izquierda de la pantalla (cuadro señalado como mapa vacío) parte del laberinto por donde vayamos, haciéndonos más fácil cumplir la misión. El juego se basa en el tiempo y la energía, los cuales se van agotando según avancemos, pero podremos recuperar ambas cosas recogiendo los objetos que encontremos a nuestro paso.

Comunicaros que hay que conseguir objetos para sumar energía y tiempo, pero también nos vamos a encontrar con que muchos objetos en vez de darnos energía o más tiempo, harán lo contrario haciendo que se nos complique cada vez más terminar la misión. Tendremos que sumar el mayor número de puntos, así que por nada nos paremos a pensar.

  • El programa tenía un fallo que cortaba el juego de vez en cuando en la línea 3100 del segundo listado. No sabemos si por fallo del autor ó en su publicación. Éste ha sido corregido.

Listado

  • Listado 1 - DRACOS.BAS
100 '***********************************************************
110 '***********************************************************
120 '*****                                                 *****
130 '*****       * * * *  D  R  A  C  O  S  * * * *        *****
140 '*****                                                 *****
150 '*****     (C) 8-AGOSTO-1988 Jorge Perez Barreiro      *****
160 '*****                                                 *****
170 '*****           AMSTRAD PCW 8256-8512-9512            *****
180 '*****                                                 *****
190 '*****              All rights reserved                *****
200 '*****                                                 *****
210 '***********************************************************
220 '***********************************************************
230 '
240 '
250 cls$=CHR$(27)+"E"+CHR$(27)+"H"
260 DEF FN at$(v,h)=CHR$(27)+"Y"+CHR$(32+v)+CHR$(32+h)
270 inverse1$=CHR$(27)+"p"
280 inverse0$=CHR$(27)+"q"
290 cursor1$=CHR$(27)+"e"
300 cursor0$=CHR$(27)+"f"
310 scrab$=CHR$(27)+"L"
320 scrar$=CHR$(27)+"M"
330 DEF FN ventana$(a,b,c,d)=CHR$(27)+"X"+CHR$(32+a)+CHR$(32+b)+CHR$(c-1+32)+CHR$(d-1+32)
340 PRINT cls$
350 PRINT FN at$(12,30);"* * *  D R A C O S  * * *"
360 PRINT FN at$(14,26);"(C) 8-8-1988 Jorge Perez Barreiro"
370 GOSUB 1680
380 sum=0
390 RESTORE 450
400 FOR i=128 TO 248
410 ca=i:GOSUB 1830
420 NEXT i
430 IF sum<>135979! THEN PRINT "HAY UN ERROR EN LAS DATAS ENTRE LA LINEA 450 Y LA 1650":END
440 GOTO 1660
450 DATA 0,3,15,31,59,127,109,127
460 DATA 0,255,247,189,223,223,253,251
470 DATA 0,224,248,172,214,235,117,251
480 DATA 123,111,127,127,59,26,13,3
490 DATA 127,247,219,127,255,170,85,255
500 DATA 181,251,245,107,214,172,88,224
510 DATA 170,85,170,85,170,85,170,85
520 DATA 255,213,213,171,171,213,213,255
530 DATA 51,102,204,153,51,102,204,153
540 DATA 255,192,176,143,132,132,132,133
550 DATA 255,0,0,255,0,146,134,226
560 DATA 255,0,0,255,0,146,130,239
570 DATA 255,3,13,241,33,33,33,161
580 DATA 132,132,133,132,143,176,192,255
590 DATA 130,144,178,0,255,0,0,255
600 DATA 130,146,147,0,255,0,0,255
610 DATA 33,33,161,33,241,13,3,255
620 DATA 255,128,152,190,167,161,176,158
630 DATA 255,0,7,13,135,241,126,1
640 DATA 255,0,224,176,225,143,126,128
650 DATA 255,1,25,125,229,133,13,121
660 DATA 128,128,129,135,190,184,128,255
670 DATA 1,126,240,128,0,0,0,255
680 DATA 128,126,15,1,0,0,0,255
690 DATA 1,1,129,225,125,29,1,255
700 DATA 255,128,188,184,177,163,131,131
710 DATA 255,0,31,255,255,193,198,255
720 DATA 255,0,248,255,255,131,143,255
730 DATA 255,1,61,29,141,197,193,193
740 DATA 129,129,160,184,188,191,128,255
750 DATA 254,252,255,120,63,15,0,255
760 DATA 127,63,255,30,252,240,0,255
770 DATA 129,129,5,29,61,253,1,255
780 DATA 255,128,191,160,173,172,173,172
790 DATA 255,0,255,0,125,0,83,40
800 DATA 255,0,255,0,85,0,213,0
810 DATA 255,1,253,5,117,5,213,21
820 DATA 173,160,170,165,160,191,128,255
830 DATA 83,3,171,83,0,255,0,255
840 DATA 78,46,64,47,0,255,0,255
850 DATA 133,85,5,213,5,253,1,255
860 DATA 170,85,128,94,159,91,153,89
870 DATA 170,85,0,63,42,128,128,185
880 DATA 170,85,0,255,170,0,0,219
890 DATA 170,85,2,249,170,1,2,185
900 DATA 153,89,155,95,158,64,170,85
910 DATA 169,185,169,37,37,0,170,85
920 DATA 82,210,82,82,91,0,170,85
930 DATA 162,161,186,137,186,1,170,85
940 DATA 255,176,140,131,160,128,137,160
950 DATA 255,0,33,8,192,56,6,33
960 DATA 255,0,8,0,67,30,117,170
970 DATA 255,14,53,234,85,170,85,170
980 DATA 132,128,164,128,131,140,179,204
990 DATA 1,134,59,204,51,204,51,204
1000 DATA 213,234,61,207,51,204,51,204
1010 DATA 85,170,85,170,213,250,61,207
1020 DATA 63,127,107,227,230,127,49,63
1030 DATA 240,255,255,255,54,255,153,255
1040 DATA 7,15,223,255,97,255,134,255
1050 DATA 254,255,255,255,179,255,195,255
1060 DATA 51,31,112,255,243,255,255,127
1070 DATA 102,255,204,255,94,247,247,3
1080 DATA 198,255,140,255,51,255,255,255
1090 DATA 51,254,198,252,22,255,255,255
1100 DATA 0,0,0,0,0,3,14,17
1110 DATA 7,0,7,7,63,255,255,128
1120 DATA 224,0,224,224,252,255,255,1
1130 DATA 0,0,0,0,0,192,240,248
1140 DATA 55,111,95,103,56,15,1,0
1150 DATA 181,128,187,128,255,15,247,31
1160 DATA 93,1,85,1,255,255,255,248
1170 DATA 252,254,254,254,252,240,128,0
1180 DATA 255,255,208,223,209,213,213,197
1190 DATA 255,255,68,119,84,213,93,85
1200 DATA 255,255,21,213,84,223,68,127
1210 DATA 255,255,19,251,147,223,83,223
1220 DATA 255,208,223,192,255,196,255,255
1230 DATA 87,84,223,16,247,68,255,255
1240 DATA 228,47,234,171,170,42,255,255
1250 DATA 19,251,11,239,43,171,255,255
1260 DATA 0,0,0,0,3,6,13,26
1270 DATA 0,15,53,234,85,175,95,176
1280 DATA 127,170,85,171,127,255,255,15
1290 DATA 255,255,255,255,255,255,255,240
1300 DATA 0,240,252,255,255,255,255,15
1310 DATA 0,0,0,0,192,224,240,248
1320 DATA 53,42,85,107,87,111,215,175
1330 DATA 96,239,239,224,255,255,255,255
1340 DATA 7,135,135,7,255,254,240,241
1350 DATA 224,239,239,224,255,127,15,143
1360 DATA 7,135,135,7,255,255,255,255
1370 DATA 252,252,254,254,254,254,255,255
1380 DATA 215,175,215,175,215,143,207,135
1390 DATA 255,255,240,255,255,159,159,14
1400 DATA 255,255,0,255,255,62,62,28
1410 DATA 255,255,0,255,255,124,124,56
1420 DATA 255,255,15,255,255,249,249,112
1430 DATA 255,255,255,255,255,243,243,225
1440 DATA 7,31,17,57,63,127,102,102
1450 DATA 224,248,136,204,252,254,102,102
1460 DATA 0,1,31,234,255,170,255,128
1470 DATA 7,159,159,149,159,170,159,145
1480 DATA 62,62,62,42,63,168,57,36
1490 DATA 124,124,124,84,252,21,156,36
1500 DATA 224,249,249,169,249,85,249,137
1510 DATA 0,128,248,87,255,85,255,1
1520 DATA 255,128,255,0,170,85,63,15
1530 DATA 159,145,255,0,170,85,255,255
1540 DATA 62,35,255,0,170,85,255,255
1550 DATA 124,196,255,0,170,85,255,255
1560 DATA 249,137,255,0,170,85,255,255
1570 DATA 255,1,255,0,170,85,252,240
1580 DATA 0,0,1,7,31,124,240,192
1590 DATA 80,112,240,192,0,0,0,0
1600 DATA 2,11,2,11,2,11,2,11
1610 DATA 64,208,64,208,64,208,64,208
1620 DATA 10,14,15,3,0,0,0,0
1630 DATA 0,0,128,224,248,62,15,3
1640 DATA 15,63,170,255,85,9,49,193
1650 DATA 240,252,85,255,170,144,140,131
1660 LOAD "DRACOS2",r
1670 STOP
1680 REM
1690 MEMORY 61999!
1700 lla=62228!
1710 sum=0
1720 RESTORE 1800
1730 FOR s=62228! TO 62280!
1740 READ a$:a=VAL("&H"+a$)
1750 sum=sum+a
1760 POKE s,a
1770 NEXT s
1780 IF sum<>4482 THEN PRINT "HAY UN ERROR EN LAS DATAS ENTRE LA LINEA 1800 Y LA 1820":END
1790 RETURN
1800 DATA 2A,01,00,11,57,00,19,22,3E
1810 DATA F3,01,27,F3,CD,3D,F3,E9,00,C9,2A,40,F3,26,00,29,29,29,11,00,B8,19,11,41,F3
1820 DATA EB,01,08,00,ED,B0,C9,C3,38,00,0B,00,B0,04,87,20,4C,44,49
1830 POKE 62272!,ca:FOR t=62273! TO 62280!:READ by:POKE t,by:sum=sum+by:NEXT t:CALL lla:RETURN
65534 CLEAR:SAVE "DRACOS"
  • Listado 2 - DRACOS2.BAS
100 '***********************************************************
110 '***********************************************************
120 '*****                                                 *****
130 '*****       * * * *  D  R  A  C  O  S  * * * *        *****
140 '*****                                                 *****
150 '*****     (C) 8-AGOSTO-1988 Jorge Perez Barreiro      *****
160 '*****                                                 *****
170 '*****           AMSTRAD PCW 8256-8512-9512            *****
180 '*****                                                 *****
190 '*****              All rights reserved                *****
200 '*****                                                 *****
210 '***********************************************************
220 '***********************************************************
230 '
240 '
250 cls$=CHR$(27)+"E"+CHR$(27)+"H"
260 DEF FN at$(v,h)=CHR$(27)+"Y"+CHR$(32+v)+CHR$(32+h)
270 inverse1$=CHR$(27)+"p"
280 inverse0$=CHR$(27)+"q"
290 cursor1$=CHR$(27)+"e"
300 cursor0$=CHR$(27)+"f"
310 scrab$=CHR$(27)+"L"
320 DEF FN ventana$(a,b,c,d)=CHR$(27)+"X"+CHR$(32+a)+CHR$(32+b)+CHR$(c-1+32)+CHR$(d-1+32)
330 PRINT cls$
340 PRINT cursor0$
350 FOR y=10 TO 12 STEP 2:FOR u=8 TO 78 STEP 4:PRINT FN at$(y,u);CHR$(169);CHR$(170);CHR$(171);CHR$(172);FN at$(y+1,u);CHR$(173);CHR$(174);CHR$(175);CHR$(176):NEXT u:NEXT y
360 p1$=CHR$(177)+CHR$(178)+CHR$(179)+CHR$(180):p2$=CHR$(181)+CHR$(182)+CHR$(183)+CHR$(184)
370 FOR y=8 TO 76 STEP 4:PRINT FN at$(8,y);p1$;FN at$(9,y);p2$:NEXT y
380 FOR y=34 TO 50 STEP 4:PRINT FN at$(6,y);CHR$(137);CHR$(138);CHR$(139);CHR$(140);FN at$(7,y);CHR$(141);CHR$(142);CHR$(143);CHR$(144):NEXT y
390 li=208:FOR y=3 TO 5:FOR u=41 TO 46:li=li+1:PRINT FN at$(y,u);CHR$(li):NEXT u:NEXT y
400 FOR t=8 TO 90 STEP 68:PRINT FN at$(6,t);CHR$(193);CHR$(194);CHR$(195);CHR$(196);FN at$(7,t);CHR$(197);CHR$(198);CHR$(199);CHR$(200):NEXT t
410 PRINT inverse1$:FOR t=14 TO 24 STEP 2:PRINT FN at$(t,8);p1$;FN at$(t,76);p1$;FN at$(t+1,8);p2$;FN at$(t+1,76);p2$:NEXT t
420 FOR t=8 TO 76 STEP 4:PRINT FN at$(26,t);p1$;FN at$(27,t);p2$:NEXT t
430 PRINT inverse0$
440 PRINT FN at$(15,32);"**  D  R  A  C  O  S  **"
450 PRINT FN at$(17,27);"(C) 8-8-1988 Jorge Perez Barreiro"
460 PRINT FN at$(19,31);"AMSTRAD PCW 8256-8512-9512"
470 PRINT FN at$(21,34);"All Rights Reserved"
480 FOR t=34 TO 52:PRINT FN at$(23,t);CHR$(134):NEXT t
490 GOSUB 3540
500 DIM m$(27):DIM co$(27)
510 DIM tr$(200)
520 RANDOMIZE (PEEK(64504!)+256*PEEK(43792!))
530 REM
540 q4a$=CHR$(128)+CHR$(129)+CHR$(129)+CHR$(129)+CHR$(129)+CHR$(129)+CHR$(129)+CHR$(130)
550 q4b$=CHR$(131)+CHR$(132)+CHR$(132)+CHR$(132)+CHR$(132)+CHR$(132)+CHR$(132)+CHR$(133)
560 q3a$=CHR$(128)+CHR$(129)+CHR$(129)+CHR$(129)+CHR$(129)+CHR$(130)
570 q3b$=CHR$(131)+CHR$(132)+CHR$(132)+CHR$(132)+CHR$(132)+CHR$(133)
580 q2a$=CHR$(128)+CHR$(129)+CHR$(129)+CHR$(130)
590 q2b$=CHR$(131)+CHR$(132)+CHR$(132)+CHR$(133)
600 qda$=CHR$(128)+CHR$(129)+CHR$(129)+CHR$(129)
610 qdb$=CHR$(131)+CHR$(132)+CHR$(132)+CHR$(132)
620 qia$=CHR$(129)+CHR$(129)+CHR$(129)+CHR$(130)
630 qib$=CHR$(132)+CHR$(132)+CHR$(132)+CHR$(133)
640 a1$="":FOR i=1 TO 16:a1$=a1$+CHR$(134):NEXT i
650 a2$=a1$
660 a3$=q4a$+q4a$
670 a4$=q4b$+q4b$
680 a5$=qia$+q4a$+qda$
690 a6$=qib$+q4b$+qdb$
700 a7$=a3$
710 a8$=a4$
720 b1$="":FOR i=1 TO 16:b1$=b1$+" ":NEXT i:MID$(b1$,7,4)=CHR$(134)+CHR$(134)+CHR$(134)+CHR$(134)
730 b2$=b1$:b3$=b1$:b4$=b1$:b5$=b1$:b6$=b1$:b7$=b1$:b8$=b1$
740 c1$="      ":FOR i=1 TO 10:c1$=c1$+CHR$(134):NEXT i
750 c2$=c1$
760 c3$="      "+CHR$(134)+CHR$(134)+CHR$(134)+CHR$(134)+q3a$
770 c4$="      "+CHR$(134)+CHR$(134)+CHR$(134)+CHR$(134)+q3b$
780 c5$="      "+CHR$(134)+CHR$(134)+CHR$(134)+CHR$(134)+q2a$+CHR$(128)+CHR$(129)
790 c6$="      "+CHR$(134)+CHR$(134)+CHR$(134)+CHR$(134)+q2b$+CHR$(131)+CHR$(132)
800 c7$=c3$:c8$=c4$
810 d1$="":FOR i=1 TO 10:d1$=d1$+CHR$(134):NEXT i:d1$=d1$+"      "
820 d2$=d1$
830 d3$=q3a$+CHR$(134)+CHR$(134)+CHR$(134)+CHR$(134)+"      "
840 d4$=q3b$+CHR$(134)+CHR$(134)+CHR$(134)+CHR$(134)+"      "
850 d5$=CHR$(129)+CHR$(130)+q2a$+CHR$(134)+CHR$(134)+CHR$(134)+CHR$(134)+"      "
860 d6$=CHR$(132)+CHR$(133)+q2b$+CHR$(134)+CHR$(134)+CHR$(134)+CHR$(134)+"      "
870 d7$=d3$:d8$=d4$
880 e1$=c1$:e2$=c1$
890 e3$="      "+q2a$+q3a$
900 e4$="      "+q2b$+q3b$
910 e5$="      "+q3a$+qda$
920 e6$="      "+q3b$+qdb$
930 e7$=e3$:e8$=e4$
940 f1$="":FOR i=1 TO 10:f1$=f1$+CHR$(134):NEXT i:f1$=f1$+"      "
950 f2$=f1$
960 f3$=q3a$+q2a$+"      "
970 f4$=q3b$+q2b$+"      "
980 f5$=qia$+q3a$+"      "
990 f6$=qib$+q3b$+"      "
1000 f7$=f3$:f8$=f4$
1010 g1$="      "+CHR$(134)+CHR$(134)+CHR$(134)+CHR$(134)+"      "
1020 g2$=g1$
1030 g3$="      "+q2a$+"      "
1040 g4$="      "+q2b$+"      "
1050 g5$=g3$:g6$=g4$:g7$=g3$:g8$=g4$
1060 h1$="":FOR i=1 TO 16:h1$=h1$+CHR$(134):NEXT i:h2$=h1$
1070 h3$=q4a$+q4a$
1080 h4$=q4b$+q4b$
1090 h5$=qia$+q4a$+q2a$
1100 h6$=qib$+q4b$+q2b$
1110 h7$=h3$:h8$=h4$
1120 i1$=h1$:i2$=h2$:i3$=h3$:i4$=h4$
1130 i5$=q2a$+q4a$+qda$
1140 i6$=q2b$+q4b$+qdb$
1150 i7$=i3$:i8$=i4$
1160 pu=0:vi=2:mas=300:en=mas:ti=28000!:vol=61000!
1170 y$="                           ":FOR i=1 TO 27:m$(i)=y$:co$(i)=y$:NEXT i
1180 GOSUB 4010
1190 FOR y=1 TO 4
1200 FOR i=1 TO 5
1210 z=INT(RND*23)+3:x=INT(RND*23)+3:IF MID$(m$(z),x,1)="O" AND MID$(m$(z-1),x,1)=" " AND MID$(m$(z+1),x,1)=" " AND MID$(co$(z),x,1)=" " THEN MID$(co$(z),x,1)=CHR$(64+i) ELSE GOTO 1210
1220 NEXT i:NEXT y
1230 FOR y=1 TO 40
1240 z=INT(RND*23)+3:x=INT(RND*23)+3:IF MID$(m$(z),x,1)=" " AND MID$(co$(z),x,1)=" " THEN i=INT(RND*3)+1:MID$(co$(z),x,1)=CHR$(69+i) ELSE GOTO 1240
1250 NEXT y
1260 FOR y=73 TO 81
1270 z=INT(RND*23)+3:x=INT(RND*23)+3:IF MID$(m$(z),x,1)=" " AND MID$(co$(z),x,1)=" " THEN MID$(co$(z),x,1)=CHR$(y) ELSE GOTO 1270
1280 NEXT y
1290 FOR i=1 TO 3
1300 z=INT(RND*23)+3:x=INT(RND*8):x=((i-1)*8+2)+x:IF MID$(m$(z),x,1)=" " AND MID$(co$(z),x,1)=" " THEN GOTO 1310 ELSE GOTO 1300
1310 IF i=1 THEN te1=z:te2=x
1320 IF i=2 THEN te3=z:te4=x
1330 IF i=3 THEN te5=z:te6=x
1340 NEXT i
1350 IF ABS(te1-te3)<5 OR ABS(te1-te5)<5 OR ABS(te3-te5)<5 THEN GOTO 1290
1360 MID$(co$(te1),te2,1)="1"
1370 MID$(co$(te3),te4,1)="1"
1380 MID$(co$(te5),te6,1)="1"
1390 PRINT cls$
1400 FOR i=0 TO 51:PRINT FN at$(1,i);CHR$(135);FN at$(26,i);CHR$(135):NEXT i
1410 FOR i=2 TO 25:PRINT FN at$(i,0);CHR$(135);CHR$(135);FN at$(i,50);CHR$(135);CHR$(135):NEXT i
1420 FOR i=1 TO 14:PRINT FN at$(i,60);CHR$(136);CHR$(136);FN at$(i,84);CHR$(136);CHR$(136):NEXT i
1430 y$="":FOR i=1 TO 24:y$=y$+CHR$(136):NEXT i:FOR i=1 TO 9 STEP 2:PRINT FN at$(i,60);y$:NEXT i
1440 PRINT FN at$(14,60);y$
1450 PRINT FN at$(10,67);"C O F R E S"
1460 GOSUB 1470:GOTO 1520
1470 PRINT FN at$(2,63);"VIDAS:";vi
1480 PRINT FN at$(4,63);"ENERGIA:";en;" "
1490 PRINT FN at$(6,63);"TIEMPO:";ti
1500 PRINT FN at$(8,63);"PUNTOS:";pu
1510 RETURN
1520 PRINT FN at$(15,67);"M A P A"
1530 PRINT FN at$(16,60);LEFT$(y$,20);FN at$(26,60);LEFT$(y$,20)
1540 FOR i=16 TO 26:PRINT FN at$(i,60);CHR$(136);CHR$(136);FN at$(i,80);CHR$(136);CHR$(136):NEXT i
1550 li=INT(RND*25)+2:co=INT(RND*25)+2:IF MID$(m$(li),co,1)<>" " OR MID$(co$(li),co,1)<>" " THEN GOTO 1550
1560 bat=0
1570 gem=0
1580 p1$="":FOR i=209 TO 214:p1$=p1$+CHR$(i):NEXT i
1590 p2$="":FOR i=215 TO 220:p2$=p2$+CHR$(i):NEXT i
1600 p3$="":FOR i=221 TO 226:p3$=p3$+CHR$(i):NEXT i
1610 GOSUB 2960
1620 PRINT FN at$(13,23);p1$;FN at$(14,23);p2$;FN at$(15,23);p3$
1630 REM
1640 en$=INKEY$:IF en$<>"" THEN GOTO 1710
1650 REM
1660 ti=ti-1
1670 IF ti<0 THEN ti=0
1680 PRINT FN at$(6,70);ti;" ":IF ti<1 THEN vi=0:GOTO 2060
1690 IF ti=0 THEN GOTO 2060
1700 GOTO 1640
1710 IF en$<>"q" AND en$<>"a" AND en$<>"o" AND en$<>"p" THEN GOTO 1650
1720 li2=li:co2=co
1730 IF en$="q" THEN li=li-1
1740 IF en$="a" THEN li=li+1
1750 IF en$="p" THEN co=co+1
1760 IF en$="o" THEN co=co-1
1770 IF MID$(m$(li),co,1)<>" " THEN li=li2:co=co2:d=0.2:f=1:GOSUB 3880:GOTO 1650
1780 vol=vol+2:IF vol<62000! THEN POKE vol,li:POKE vol+1,co
1790 lin=13:col=23
1800 er$="      "
1810 en=en-5:PRINT FN at$(4,71);en;" "
1820 ti=ti-100
1830 FOR i=1 TO 8
1840 PRINT FN at$(lin,col);er$;FN at$(lin+1,col);er$;FN at$(lin+2,col);er$
1850 IF en$="q" THEN lin=lin-1
1860 IF en$="a" THEN lin=lin+1
1870 IF en$="o" THEN col=col-2
1880 IF en$="p" THEN col=col+2
1890 PRINT FN at$(lin,col);p1$;FN at$(lin+1,col);p2$;FN at$(lin+2,col);p3$
1900 NEXT i
1910 IF MID$(co$(li),co,1)="H" THEN FOR l=1 TO 9:d=l/100:f=l:GOSUB 3880:NEXT l:en=en+50:pu=pu+150:GOSUB 1470:MID$(co$(li),co,1)=" "
1920 IF MID$(co$(li),co,1)="G" THEN FOR y=1 TO 2:FOR r=9 TO 1 STEP -1:f=r:d=0.005:GOSUB 3880:f=9-r:d=0.002:GOSUB 3880:NEXT r:NEXT y:pu=pu+5000:GOSUB 1470:MID$(co$(li),co,1)=" "
1930 IF MID$(co$(li),co,1)="F" THEN FOR y=1 TO 3:FOR r=6 TO 1 STEP -1:f=r+y:d=0.004*y:GOSUB 3880:NEXT r:NEXT y:pu=pu+2500:GOSUB 1470:MID$(co$(li),co,1)=" "
1940 jk$=MID$(co$(li),co,1):IF jk$>"H" THEN GOSUB 2730
1950 IF jk$="1" THEN GOTO 2710
1960 GOSUB 2960
1970 PRINT FN at$(13,23);p1$;FN at$(14,23);p2$;FN at$(15,23);p3$
1980 IF en=0 THEN GOTO 2060
1990 IF ln=0 THEN GOTO 1650
2000 IF bat=1 THEN PRINT FN at$(j1,j2);"  "
2010 IF li>=ln AND li<=ln+8 AND co>=cl AND co<=cl+8 THEN GOTO 2020 ELSE bat=0:GOTO 2050
2020 bat=1
2030 j1=17+li-ln:j2=62+((co-cl)*2)
2040 PRINT FN at$(j1,j2);CHR$(227);CHR$(228)
2050 GOTO 1650
2060 FOR y=1 TO 18
2070 PRINT inverse1$:PRINT FN at$(13,23);p1$;FN at$(14,23);p2$;FN at$(15,23);p3$
2080 PRINT inverse0$:PRINT FN at$(13,23);p1$;FN at$(14,23);p2$;FN at$(15,23);p3$
2090 f=5:d=(19-y)/1000:GOSUB 3880
2100 NEXT y
2110 vi=vi-1
2120 IF vi=-1 THEN vi=0:GOTO 2430
2130 en=mas
2140 GOSUB 1470
2150 GOTO 1610
2160 ex=(vol-61000!)/2:ex=ex*100:pu=pu+ex:GOSUB 1470
2170 PRINT FN ventana$(0,0,31,60):PRINT cls$:PRINT FN ventana$(0,0,31,90):PRINT FN at$(0,0);:FOR t=1 TO 16:PRINT scrab$:NEXT t
2180 FOR q=2 TO 26
2190 FOR w=2 TO 26
2200 qw$=MID$(m$(q),w,1)
2210 IF qw$="O" THEN PRINT FN at$(q+2,w*2-3);CHR$(134);CHR$(134)
2220 NEXT w:NEXT q
2230 PRINT FN at$(29,5);"...... PULSA 'RETURN' PARA CONTINUAR ......"
2240 PRINT FN at$(te1+2,te2*2-3);CHR$(247);CHR$(248)
2250 PRINT FN at$(te3+2,te4*2-3);CHR$(247);CHR$(248)
2260 PRINT FN at$(te5+2,te6*2-3);CHR$(247);CHR$(248)
2270 RETURN
2280 ij=0:ty=PEEK(61002!)
2290 tu=PEEK(61003!):IF vol>=62000! THEN vol=61998!
2300 DEF FN at$(v,h)=CHR$(27)+"Y"+CHR$(32+v)+CHR$(32+h):REM CONTROL "AT"
2310 FOR xq=61002! TO vol STEP 2
2320 ij=ij+1:IF ij<4 THEN PRINT FN at$(0,0);inverse1$;"REPLAY";inverse0$ ELSE PRINT FN at$(0,0);"      "
2330 IF ij=8 THEN ij=0
2340 PRINT FN at$(ty+2,tu*2-3);".."
2350 ty=PEEK(xq)
2360 tu=PEEK(xq+1)
2370 PRINT FN at$(ty+2,tu*2-3);CHR$(227);CHR$(228)
2380 d=0.003:f=5:GOSUB 3880
2390 en$=INKEY$:IF en$<>"" THEN IF ASC(en$)=13 THEN GOTO 2510
2400 NEXT xq
2410 RETURN
2420 FOR y=61002! TO vol STEP 2:PRINT FN at$(PEEK(y)+2,PEEK(y+1)*2-3);"  ":NEXT y:RETURN
2430 FOR y=9 TO 1 STEP -0.5:f=y:d=y/100:GOSUB 3880:NEXT y
2440 GOSUB 2160
2450 PRINT FN at$(0,30);"* * *  G A M E  O V E R  * * *"
2460 GOSUB 2280
2470 FOR y=1 TO 4000:NEXT y
2480 GOSUB 2420
2490 GOSUB 2240
2500 GOTO 2460
2510 PRINT cls$:PRINT FN AT$(16,30);"] Otra partida ? (s/n)"
2520 en$=INKEY$:IF en$="" THEN GOTO 2520
2530 IF en$="s" OR en$="S" THEN RUN
2540 PRINT cursor1$
2550 PRINT cls$:END
2560 FOR y=0 TO 24 STEP 4
2570 FOR r=0 TO 50 STEP 7
2580 PRINT FN at$(y,r);kl1$;" ";FN at$(y+1,r);kl2$;" ";FN at$(y+2,r);kl3$;" ";FN at$(y+3,r);"       "
2590 d=0.0035:f=INT(RND*4)+1:GOSUB 3880
2600 NEXT r
2610 NEXT y
2620 FOR y=11 TO 15:PRINT FN at$(y,11);a1$;a1$:NEXT y
2630 PRINT FN at$(13,16);inverse1$;"* * LO HAS LOGRADO * *";inverse0$
2640 FOR y=1 TO 7
2650 FOR r=1 TO 9
2660 f=r:d=0.02:GOSUB 3880
2670 NEXT r
2680 NEXT y
2690 GOSUB 2160
2700 PRINT FN at$(0,20);"* * FELICIDADES HAS CONSEGUIDO LOS TRES COFRES * *":GOTO 2460
2710 gem=gem+1:FOR u=1 TO 5:FOR y=1 TO 6:f=y+INT(RND*3)+1:d=u/50:GOSUB 3880:NEXT y:NEXT u:pu=pu+10000:GOSUB 1470:cq=56+(gem*7):PRINT FN at$(11,cq);kl1$;FN at$(12,cq);kl2$;FN at$(13,cq);kl3$:MID$(co$(li),co,1)=" ":IF gem=3 THEN GOTO 2560
2720 GOTO 1960
2730 IF jk$="I" THEN ln=1:cl=1
2740 IF jk$="J" THEN ln=1:cl=10
2750 IF jk$="K" THEN ln=1:cl=19
2760 IF jk$="L" THEN ln=10:cl=1
2770 IF jk$="M" THEN ln=10:cl=10
2780 IF jk$="N" THEN ln=10:cl=19
2790 IF jk$="O" THEN ln=19:cl=1
2800 IF jk$="P" THEN ln=19:cl=10
2810 IF jk$="Q" THEN ln=19:cl=19
2820 bat=0
2830 PRINT FN ventana$(17,62,9,18):PRINT cls$:PRINT FN ventana$(0,0,31,90)
2840 ti=ti-100
2850 z1=ln
2860 FOR u=17 TO 25
2870 x1=cl
2880 FOR i=62 TO 79 STEP 2
2890 jk$=MID$(m$(z1),x1,1):IF jk$="O" THEN PRINT FN at$(u,i);CHR$(134);CHR$(134):f=INT(RND*6)+4:d=0.001:GOSUB 3880
2900 IF MID$(co$(z1),x1,1)="1" THEN PRINT FN at$(u,i);CHR$(247);CHR$(248)
2910 x1=x1+1
2920 NEXT i
2930 z1=z1+1
2940 NEXT u
2950 RETURN
2960 REM
2970 PRINT FN ventana$(2,2,24,48):PRINT cls$:PRINT FN ventana$(0,0,31,90)
2980 FOR k=1 TO 3
2990 FOR l=1 TO 3
3000 z=li-2+k:x=co-2+l
3010 n$=MID$(m$(z),x,1)
3020 IF n$=" " THEN GOTO 3140
3030 IF MID$(m$(z),x+1,1)<>" " AND MID$(m$(z),x-1,1)<>" " THEN GOTO 3280
3040 IF MID$(m$(z+1),x,1)<>" " AND MID$(m$(z-1),x,1)<>" " AND MID$(m$(z),x+1,1)=" " AND MID$(m$(z),x-1,1)=" " THEN GOTO 3360
3050 IF MID$(m$(z+1),x,1)<>" " AND MID$(m$(z-1),x,1)=" " AND MID$(m$(z),x+1,1)=" " AND MID$(m$(z),x-1,1)=" " THEN GOTO 3360
3060 IF MID$(m$(z),x+1,1)<>" " AND MID$(m$(z+1),x,1)<>" " THEN GOTO 3380
3070 IF MID$(m$(z),x-1,1)<>" " AND MID$(m$(z+1),x,1)<>" " THEN GOTO 3400
3080 IF MID$(m$(z-1),x,1)<>" " AND MID$(m$(z),x+1,1)<>" " THEN GOTO 3420
3090 IF MID$(m$(z),x-1,1)<>" " AND MID$(m$(z-1),x,1)<>" " THEN GOTO 3440
3100 IF MID$(m$(z+1),x,1)=" " AND MID$(m$(z-1),x,1)<>" " AND MID$(m$(z),x+1,1)=" " AND MID$(m$(z),x-1,1)=" " THEN GOTO 3360
3110 IF MID$(m$(z),x-1,1)<>" " AND MID$(m$(z),x+1,1)=" " THEN GOTO 3480
3120 IF MID$(m$(z),x-1,1)=" " AND MID$(m$(z),x+1,1)<>" " THEN GOTO 3500
3130 GOTO 3520
3140 jk$=MID$(co$(z),x,1):IF (jk$>="A" AND jk$<"F") OR jk$<"1" THEN GOTO 3250
3150 IF jk$="1" THEN z1=(k-1)*8+5:x1=(l-1)*16+7:kl1$="":FOR i=229 TO 234:kl1$=kl1$+CHR$(i):NEXT i:kl2$="":FOR i=235 TO 240:kl2$=kl2$+CHR$(i):NEXT i:kl3$="":FOR i=241 TO 246:kl3$=kl3$+CHR$(i):NEXT i
3160 IF jk$="1" THEN PRINT FN at$(z1,x1);kl1$;FN at$(z1+1,x1);kl2$;FN at$(z1+2,x1);kl3$:GOTO 3250
3170 IF jk$>"H" THEN jk$="I"
3180 z=(ASC(jk$)-69)*8+169
3190 ob1$="":FOR i=z TO z+3:ob1$=ob1$+CHR$(i):NEXT i
3200 ob2$="":FOR i=z+4 TO z+7:ob2$=ob2$+CHR$(i):NEXT i
3210 z1=(k-1)*8+5:x1=(l-1)*16+8:PRINT FN at$(z1,x1);ob1$;FN at$(z1+1,x1);ob2$
3220 GOTO 3250
3230 REM
3240 x=l*16-14:z=k*8-6:PRINT FN at$(z,x);u1$;FN at$(z+1,x);u2$;FN at$(z+2,x);u3$;FN at$(z+3,x);u4$:PRINT FN at$(z+4,x);u5$;FN at$(z+5,x);u6$;FN at$(z+6,x);u7$;FN at$(z+7,x);u8$
3250 NEXT l
3260 NEXT k
3270 RETURN
3280 u1$=a1$:u2$=a2$:u3$=a3$:u4$=a4$:u5$=a5$:u6$=a6$:u7$=a7$:u8$=a8$
3290 jk$=MID$(co$(z),x,1):IF jk$=" " THEN GOTO 3230
3300 z=(ASC(jk$)-64)*8+129
3310 ob1$="":FOR i=z TO z+3:ob1$=ob1$+CHR$(i):NEXT i
3320 ob2$="":FOR i=z+4 TO z+7:ob2$=ob2$+CHR$(i):NEXT i
3330 MID$(u4$,7,4)=ob1$
3340 MID$(u5$,7,4)=ob2$
3350 GOTO 3230
3360 u1$=b1$:u2$=b2$:u3$=b3$:u4$=b4$:u5$=b5$:u6$=b6$:u7$=b7$:u8$=b8$
3370 GOTO 3230
3380 u1$=c1$:u2$=c2$:u3$=c3$:u4$=c4$:u5$=c5$:u6$=c6$:u7$=c7$:u8$=c8$
3390 GOTO 3230
3400 u1$=d1$:u2$=d2$:u3$=d3$:u4$=d4$:u5$=d5$:u6$=d6$:u7$=d7$:u8$=d8$
3410 GOTO 3230
3420 u1$=e1$:u2$=e2$:u3$=e3$:u4$=e4$:u5$=e5$:u6$=e6$:u7$=e7$:u8$=e8$
3430 GOTO 3230
3440 u1$=f1$:u2$=f2$:u3$=f3$:u4$=f4$:u5$=f5$:u6$=f6$:u7$=f7$:u8$=f8$
3450 GOTO 3230
3460 u1$=g1$:u2$=g2$:u3$=g3$:u4$=g4$:u5$=g5$:u6$=g6$:u7$=g7$:u8$=g8$
3470 GOTO 3230
3480 u1$=h1$:u2$=h2$:u3$=h3$:u4$=h4$:u5$=h5$:u6$=h6$:u7$=h7$:u8$=h8$
3490 GOTO 3230
3500 u1$=i1$:u2$=i2$:u3$=i3$:u4$=i4$:u5$=i5$:u6$=i6$:u7$=i7$:u8$=i8$
3510 GOTO 3230
3520 GOTO 3280
3530 STOP
3540 REM BEEP
3550 MEMORY 60999!
3560 RESTORE 3610
3570 sum=0:FOR n=62000! TO 62091!
3580 READ d
3590 POKE n,d:sum=sum+d
3600 NEXT n:IF sum<>10674 THEN PRINT "HAY EN ERROR EN LAS DATAS ENTRE LA LINEA 3610 Y LA 3660":END
3610 DATA 229,213,197,221,229,42,75,242,237,91,73,242,205,77,242,62
3620 DATA 12,211,248,221,225,193,209,225,201,0,0,0,0,243,125,203
3630 DATA 61,203,61,47,230,3,79,6,0,221,33,97,242,221,9,62
3640 DATA 11,0,0,0,4,12,13,32,253,14,63,5,32,248,60,254
3650 DATA 13,32,2,61,61,211,248,68,79,254,11,32,9,122,179,40
3660 DATA 9,121,77,27,221,233,77,12,221,233,251,201
3670 a=62000!
3680 b=62025!
3690 c=62027!
3700 DIM e(12)
3710 sum=0:FOR n=0 TO 11
3720 READ f
3730 e(n)=f:sum=sum+f
3740 NEXT n:IF sum<>4399.79 THEN PRINT "HAY EN ERROR EN LAS DATAS ENTRE LA LINEA 3750 Y LA 3860":END
3750 DATA 261.63
3760 DATA 277.18
3770 DATA 293.66
3780 DATA 311.13
3790 DATA 329.63
3800 DATA 349.23
3810 DATA 369.99
3820 DATA 392.00
3830 DATA 415.30
3840 DATA 440.00
3850 DATA 466.16
3860 DATA 493.88
3870 RETURN
3880 REM
3890 f2=e(f)
3900 t=3500000!/(f2*2):t=INT(t/4-30.125)
3910 IF t<0 THEN t=1
3920 f2=INT(f2*d)
3930 IF f2<0 THEN f2=1
3940 POKE b,f2-256*INT(f2/256)
3950 POKE b+1,INT(f2/256)
3960 POKE c,t-256*INT(t/256)
3970 POKE c+1,INT(t/256)
3980 CALL a
3990 RETURN
4000 STOP
4010 io$=" ":FOR i=1 TO 25:io$=io$+"O":NEXT i:io$=io$+" "
4020 iu$="                           "
4030 m$(1)=iu$:m$(27)=iu$
4040 FOR i=2 TO 26:m$(i)=io$:NEXT i
4050 co1=INT(RND*25)+2:co2=INT(RND*25)+2
4060 IF MID$(m$(co1),co2,1)<>"O" OR co1/2=INT(co1/2) OR co2/2=INT(co2/2) THEN GOTO 4050
4070 fl1=0:fl2=0:fl3=0:fl4=0
4080 IF fl1=1 AND fl2=1 AND fl3=1 AND fl4=1 THEN GOTO 4280
4090 dic=INT(RND*4)+1
4100 ON dic GOTO 4120,4160,4200,4240
4110 STOP
4120 IF MID$(m$(co1-2),co2,1)=" " THEN fl1=1:GOTO 4080
4130 fl1=0
4140 MID$(m$(co1-2),co2,1)=" ":MID$(m$(co1-1),co2,1)=" ":co1=co1-2
4150 GOTO 4070
4160 IF MID$(m$(co1),co2+2,1)=" " THEN fl2=1:GOTO 4080
4170 fl2=0
4180 MID$(m$(co1),co2+1,2)="  ":co2=co2+2
4190 GOTO 4070
4200 IF MID$(m$(co1+2),co2,1)=" " THEN fl3=1:GOTO 4080
4210 fl3=0
4220 MID$(m$(co1+2),co2,1)=" ":MID$(m$(co1+1),co2,1)=" ":co1=co1+2
4230 GOTO 4070
4240 IF MID$(m$(co1),co2-2,1)=" " THEN fl4=1:GOTO 4080
4250 fl4=0
4260 MID$(m$(co1),co2-2,2)="  ":co2=co2-2
4270 GOTO 4070
4280 FOR co1=3 TO 25 STEP 2:FOR co2=3 TO 25 STEP 2
4290 IF MID$(m$(co1),co2,1)="O" THEN GOTO 4380
4300 IF MID$(m$(co1-2),co2,1)=" " THEN GOTO 4320
4310 dic=1:GOTO 4100
4320 IF MID$(m$(co1),co2+2,1)=" " THEN GOTO 4340
4330 dic=2:GOTO 4100
4340 IF MID$(m$(co1+2),co2,1)=" " THEN GOTO 4360
4350 dic=3:GOTO 4100
4360 IF MID$(m$(co1),co2-2,1)=" " THEN GOTO 4380
4370 dic=4:GOTO 4100
4380 NEXT co2:NEXT co1
4390 RETURN
4400 FOR i=1 TO 27:PRINT m$(i);"--";co$(i):NEXT i:STOP
4410 FOR y=1 TO 5:FOR r=1 TO 8 STEP 2:f=r:d=0.005:GOSUB 3880:NEXT r:NEXT y
4420 STOP
65534 CLEAR:SAVE "DRACOS2"

Controles

      Q = ARRIBA
      A = ABAJO
      P = DERECHA
      O = IZQUIERDA

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 Dracos
4.- Teclear run "Dracos" y pulsar la tecla "ENTER"

Extras

Este juego nunca llegó a ser publicado, su autor Jorge Pérez Barreiro lo publicó en su web.

Descarga

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

Enlaces

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