====== DRACOS ====== {{:otros:Dracos_p1.jpg?690|}} ===== 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|Preservado]] | ===== Capturas ===== {{:otros:Dracos_screenshot01.png?220}} {{:otros:Dracos_screenshot02.png?220}} {{:otros:Dracos_screenshot03.png?220}} {{:otros:Dracos_screenshot04.png?220}} ===== 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 ===== * {{:otros:Dracos (Basic).zip|Dracos }}(juego en formato dsk, comprimido con zip) ===== Enlaces ===== * [[http://www.ooparts-universe.com/prgs/index_esp.html|Página Web oficial de Jorge Pérez Barreiro]]