====== GANIMEDES ====== {{:otros:Ganimedes_p1.jpg?690|}} ===== Ficha ===== ^ Autor | Jorge Pérez Barreiro | ^ Computadora | Amstrad PCW 8256 / 8512 / 9512 | ^ Año | 1988 | ^ Género | Matamarcianos | ^ Controles | Teclado | ^ Lenguajes | Español | ^ Estado | [[preservado|Preservado]] | ===== Capturas ===== {{:otros:Ganimedes_screenshot01.png?220}} {{:otros:Ganimedes_screenshot02.png?220}} {{:otros:Ganimedes_screenshot03.png?220}} {{:otros:Ganimedes_screenshot04.png?220}} ===== Descripción ===== Clásico arcade de matar marcianos similar al juego Galaxian. Las oleadas sucesivas nos invaden y hemos de defender la tierra con ardor. Debemos procurar que los alienígenas no destruyan los bidones de combustible situados bajo la línea de acción de tu cañón. ¡Ánimo y a la batalla! ===== Listado ===== * **__Listado - GANIME.BAS__** 100 REM MARCIANOS (C)12-5-1988 Jorge Perez Barreiro 101 ' 102 ' 110 cls$=CHR$(27)+"E"+CHR$(27)+"H":REM BORRAR PANTALLA 120 DEF FN at$(v,h)=CHR$(27)+"Y"+CHR$(32+v)+CHR$(32+h):REM CONTROL "AT" 130 inverse1$=CHR$(27)+"p":REM VIDEO INVERSO 140 inverse0$=CHR$(27)+"q":REM VIDEO NORMAL 150 cursor1$=CHR$(27)+"e":REM CON CURSOR 160 cursor0$=CHR$(27)+"f":REM SIN CURSOR 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) 220 RANDOMIZE PEEK(64504!) 222 re=0 225 PRINT cls$ 230 f$="*********************":g$="* *":PRINT FN at$(1,35);f$;FN at$(2,35);g$;FN at$(3,35);"* G A N I M E D E S *":PRINT FN at$(4,35);g$;FN at$(5,35);f$ 240 PRINT FN at$(7,16);"AMSTRAD PCW 8256-8512-9512 (C)12-5-1988 Jorge Perez Barreiro" 245 PRINT FN at$(8,0);:FOR t=1 TO 90:PRINT "_";:NEXT t 250 PRINT FN at$(11,35);"TECLADO: o=izquierda";FN at$(12,44);"p=derecha";FN at$(13,44);"SPACE=fuego" 260 PRINT FN at$(16,0);"MISION: Destruir las naves enemigas, procurando que no se destruyan todos los bidones de fuel que tienes en la base." 990 GOSUB 9500 1000 RESTORE 9000:ca=200:GOSUB 9700 1010 RESTORE 9010:ca=201:GOSUB 9700 1020 RESTORE 9020:ca=202:GOSUB 9700 1030 RESTORE 9030:ca=203:GOSUB 9700 1040 RESTORE 9040:ca=204:GOSUB 9700 1050 RESTORE 9050:ca=205:GOSUB 9700 1060 RESTORE 9060:ca=206:GOSUB 9700 1070 RESTORE 9070:ca=207:GOSUB 9700 1080 RESTORE 9080:ca=208:GOSUB 9700 1090 RESTORE 9090:ca=209:GOSUB 9700 1100 RESTORE 9100:ca=210:GOSUB 9700 1110 RESTORE 9110:ca=211:GOSUB 9700 1120 RESTORE 9120:ca=212:GOSUB 9700 1130 RESTORE 9130:ca=213:GOSUB 9700 1140 RESTORE 9140:ca=214:GOSUB 9700 1150 RESTORE 9150:ca=215:GOSUB 9700 1160 RESTORE 9160:ca=216:GOSUB 9700 1170 RESTORE 9170:ca=217:GOSUB 9700 1180 RESTORE 9180:ca=218:GOSUB 9700 1200 PRINT FN at$(28,32);"* Pulsa 's' para comenzar *" 1210 a$=INKEY$:IF a$<>"s" THEN GOTO 260 2000 PRINT cls$ 2040 p1=INT(RND*35)+5:p2=INT(RND*40)+5:p3=INT(RND*40)+5 2050 vi=3:pu=0:co=43 2060 fm=0:fb=0:pm=0:pb=0:cm=0:cb=0 2062 pnn=84:nm=0:bd=0 2063 bi$="":FOR t=1 TO 10:bi$=bi$+CHR$(218)+" ":NEXT T 2065 nn=0 2070 i1=2:IF INT(RND*2)+1=1 THEN i1=-2 2072 i2=1:IF INT(RND*2)+1=1 THEN i2=-1 2075 i3=1:IF INT(RND*2)+1=1 THEN i3=-1 2350 FOR t=0 TO 44:PRINT FN at$(0,t*2);CHR$(214)+CHR$(215);FN at$(3,t*2);CHR$(214);CHR$(215);FN at$(28,t*2);CHR$(216);CHR$(217):NEXT t 2360 FOR t=1 TO 28:PRINT FN at$(t,0);CHR$(214);CHR$(215);FN at$(t,88);CHR$(214);CHR$(215):NEXT t 2370 h1$="":FOR t=1 TO 10:h1$=h1$+CHR$(204)+CHR$(205)+" ":NEXT t:h1$=" "+h1$ 2375 h2$="":FOR t=1 TO 10:h2$=h2$+CHR$(202)+CHR$(203)+" ":NEXT t:h2$=" "+h2$ 2378 h3$="":FOR t=1 TO 10:h3$=h3$+CHR$(200)+CHR$(201)+" ":NEXT t:h3$=" "+h3$ 2400 PRINT FN at$(1,3);"PUNTOS:";pu;FN at$(2,3);"RECORD:";re;FN at$(1,35);"* G A N I M E D E S *";FN at$(1,80);CHR$(210);CHR$(211);":";vi;FN at$(18,co);CHR$(210);CHR$(211) 2410 PRINT FN at$(20,29);bi$ 2450 PRINT FN at$(7,p1);h1$ 2460 PRINT FN at$(9,p2);h2$ 2470 PRINT FN at$(11,p3);h3$ 2480 q=INT(RND*41)+1:IF fb=0 AND MID$(h1$,q,1)<>" " THEN fb=1:cb=p1+q-1:pb=6:GOTO 2500 2490 q=INT(RND*41)+1:IF fb=0 AND MID$(h2$,q,1)<>" " THEN fb=1:cb=p2+q-1:pb=8:GOTO 2500 2495 q=INT(RND*41)+1:IF fb=0 AND MID$(h3$,q,1)<>" " THEN fb=1:cb=p3+q-1:pb=10:GOTO 2500 2500 a$=INKEY$:IF a$<>"" THEN GOTO 4000 2510 GOTO 2535 2520 PRINT FN at$(18,co2);" ";FN at$(18,co);CHR$(210);CHR$(211) 2535 IF fm=1 THEN pm=pm-2:PRINT FN at$(pm+2,cm);" ";FN at$(pm,cm);CHR$(209):IF pm=7 OR pm=9 OR pm=11 THEN GOTO 5000 2536 IF nn=1 THEN PRINT FN at$(5,pnn);" ":pnn=pnn-3:PRINT FN at$(5,pnn);CHR$(206);CHR$(207):IF fm=1 AND pm=5 AND (cm=pnn OR cm=pnn+1) THEN GOSUB 5400 2537 IF nn=1 AND pnn<=4 THEN nn=0:PRINT FN at$(5,pnn);" " 2538 IF nn=0 AND INT(RND*100)=1 THEN nn=1:pnn=84 2539 IF pm=5 THEN fm=0:PRINT FN at$(pm,cm);" " 2540 IF fb=1 THEN pb=pb+2:PRINT FN at$(pb-2,cb);" ";FN at$(pb,cb);CHR$(208):IF pb=18 THEN IF (cb=co) OR (cb=co+1) THEN GOTO 5300 2545 IF fb=1 AND pb=20 THEN GOTO 5600 2550 p1=p1+i1:IF p1>=44 THEN i1=-2 2560 IF p1<=6 THEN i1=2 2570 p2=p2+i2:IF p2=47 THEN i2=-1 2580 IF p2=3 THEN i2=1 2590 p3=p3+i3:IF p3=47 THEN i3=-1 2600 IF p3=3 THEN i3=1 3000 GOTO 2450 4000 co2=co:IF a$="p" AND co<85 THEN co=co+2:GOTO 2520 4010 IF a$="o" AND co>3 THEN co=co-2:GOTO 2520 4020 IF ASC(a$)=32 AND fm=0 THEN fm=1:cm=co:pm=19:GOTO 2535 4030 GOTO 2535 5000 IF pm=11 THEN lo=cm-p3+1 ELSE GOTO 5050 5005 IF lo<1 OR lo>41 GOTO 5050 5010 IF MID$(h3$,lo,1)=" " THEN GOTO 5050 5011 pu=pu+20 5015 IF lo/2<>INT (lo/2) THEN lo=lo-1 5017 MID$(h3$,lo,2)=" " 5020 GOTO 5200 5050 IF pm=9 THEN lo=cm-p2+1 ELSE GOTO 5100 5055 IF lo<1 OR lo>41 GOTO 5100 5060 IF MID$(h2$,lo,1)=" " THEN GOTO 5100 5065 pu=pu+50 5070 IF lo/2<>INT (lo/2) THEN lo=lo-1 5072 MID$(h2$,lo,2)=" " 5075 GOTO 5200 5100 IF pm=7 THEN lo=cm-p1+1 ELSE 2536 5102 IF lo<1 OR lo>43 GOTO 2540 5105 IF MID$(h1$,lo,1)=" " THEN GOTO 2536 5110 pu=pu+150 5115 IF lo/2<>INT (lo/2) THEN lo=lo-1 5130 MID$(h1$,lo,2)=" " 5200 fm=0:PRINT FN at$(pm,cm);CHR$(212):OUT(248),11:OUT(248),12 5205 nm=nm+1:IF nm=30 THEN nm=0:GOTO 2370 5210 PRINT FN at$(1,10);pu 5250 GOTO 2536 5300 fb=0:FOR t=1 TO 25:OUT(248),11:OUT(248),12:PRINT FN at$(18,co);CHR$(212);CHR$(213);FN at$(18,co);CHR$(213);CHR$(212):NEXT t 5310 vi=vi-1:PRINT FN at$(1,84);vi 5315 IF vi=0 THEN GOTO 5500 5320 GOTO 2400 5400 PRINT FN at$(5,pnn-1);"*1000*":pu=pu+1000:PRINT FN at$(1,10);pu:nm=0:PRINT FN at$(5,pnn-1);" ":RETURN 5500 FOR y=1 TO 7:f$="*************":g$="* *":PRINT FN at$(16,37);f$;FN at$(17,37);g$;FN at$(18,37);"* GAME OVER *";FN at$(19,37);g$;FN at$(20,37);f$ 5505 FOR t=1 TO 100:NEXT t 5511 PRINT inverse1$:f$="*************":g$="* *":PRINT FN at$(16,37);f$;FN at$(17,37);g$;FN at$(18,37);"* GAME OVER *";FN at$(19,37);g$;FN at$(20,37);f$;inverse0$ 5515 FOR t=1 TO 30:NEXT t 5530 NEXT y 5550 PRINT FN at$(22,27);"** Pulsa 's' para otra partida **" 5560 IF INKEY$<>"s" THEN GOTO 5560 5562 IF pu>re THEN re=pu 5565 GOTO 2000 5600 pl=cb-28 5601 IF pl<1 OR pl>30 THEN GOTO 5610 5602 IF MID$(bi$,pl,1)<>" " THEN GOTO 5615 5610 PRINT FN at$(20,cb);" ":fb=0:GOTO 2550 5615 MID$(bi$,pl,1)=" ":PRINT FN at$(20,cb);CHR$(213);FN at$(20,cb);" ":bd=bd+1 5620 IF bd=10 THEN GOTO 5500 5630 GOTO 2545 8700 END 8800 FOR t=200 TO 220:PRINT CHR$(t);:NEXT t:STOP 8900 STOP 9000 DATA 129,67,62,119,187,159,137,72 9010 DATA 129,194,124,238,221,249,145,18 9020 DATA 193,231,127,57,27,63,98,196 9030 DATA 131,231,254,156,183,252,70,35 9040 DATA 134,255,165,130,195,195,130,128 9050 DATA 97,255,165,103,195,195,65,1 9060 DATA 0,0,0,7,31,117,255,31 9070 DATA 32,64,64,224,248,174,255,248 9080 DATA 5,2,2,2,7,5,7,2 9090 DATA 2,2,2,7,2,7,7,5 9100 DATA 33,195,199,205,255,197,199,34 9110 DATA 132,195,227,179,255,163,227,68 9120 DATA 62,93,113,239,189,238,55,30 9130 DATA 6,159,243,223,190,110,248,56 9140 DATA 43,87,175,95,175,87,43,0 9150 DATA 248,252,254,254,254,252,248,0 9160 DATA 0,0,16,80,92,122,221,255 9170 DATA 16,80,112,116,180,186,125,255 9180 DATA 94,191,95,191,0,191,95,191 9500 REM GRAPHIC'S CREATOR 9510 MEMORY 62227! 9520 lla=62228! 9530 RESTORE 9610 9540 FOR s=62228! TO 62280! 9550 READ a$:a=VAL("&H"+a$) 9570 POKE s,a 9580 NEXT s 9600 RETURN 9610 DATA 2A,01,00,11,57,00,19,22,3E 9620 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 9630 DATA EB,01,08,00,ED,B0,C9,C3,38,00,0B,00,B0,04,87,20,4C,44,49 9650 CLEAR:SAVE "gdu" 9700 POKE 62272!,ca:FOR t=62273! TO 62280!:READ by:POKE t,by:NEXT t:CALL lla:RETURN 9998 STOP 9999 CLEAR:SAVE "ganime" ===== Controles ===== O = IZQUIERDA P = DERECHA ESPACIO = FUEGO ===== 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 Ganimedes 4.- Teclear run "Marci" y pulsar la tecla "ENTER" ===== Extras ===== * Listado del programa en una revista de gran tirada de la época {{:otros:Ganimedes_programa_01.jpg?210}} {{:otros:Ganimedes_programa_02.jpg?210}} {{:otros:Ganimedes_programa_03.jpg?210}} {{:otros:Ganimedes_programa_04.jpg?210}} ===== Descarga ===== * {{:otros:Ganimedes (Basic).zip|Ganimedes }}(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]]