====== CRASH LANDING ====== {{:otros:Crash_Landing_p1.jpg?690|}} ===== Ficha ===== ^ Autor | ??????? | ^ Computadora | Amstrad PCW 8256 / 8512 / 9512 | ^ Año | ???? | ^ Género | Arcade | ^ Controles | Teclado | ^ Lenguajes | Inglés | ^ Estado | [[preservado|Preservado]] | ===== Capturas ===== {{:otros:Crash_Landing_screenshot01.png?220}} {{:otros:Crash_Landing_screenshot02.png?220}} {{:otros:Crash_Landing_screenshot03.png?220}} {{:otros:Crash_Landing_screenshot04.png?220}} ===== Descripción ===== Estás casi sin combustible en Nueva York, y sólo hay una manera de aterrizar, deshacerse de todos los edificios vacíos de la ciudad. La barra espaciadora liberará las bombas para acabar con los edificios. El programa es algo permisivo con nosotros ya que nos permitirá derribar algunos edificios sin demasiados problemas, aunque nuestro tren de aterrizaje podría dañarse. Si logramos aterrizar sin problemas, nos recibirán con una melodía apropiada "Those Magnificent Men in their Flying Machines" y podremos comenzar un nuevo nivel donde las bombas son más pequeñas. ===== Listado ===== * **__Listado 1 - CRASHLND.BAS__** 10 DIM p(8,11):h!=HIMEM:MEMORY &HBFFE:FOR x=&HC070 TO &HC098:READ pk:POKE x,pk:NEXT x 20 DATA 243,62,129,211,241,62,130,211,242,175,95,103,22,184,58,153,192,111,41,41 30 DATA 41,25,17,154,192,235,1,8,0,237,176,62,133,211,241,62,134,211,242,251,201 40 char=220 50 count=11:ch=char:WHILE char * **__Listado 2 - CRASHLND.OVL__** 10 OPTION RUN 20 BOMB%=3 30 PRINT CHR$(27)+"f":GOSUB 470 40 GOSUB 390 50 PRINT c$:GOSUB 300:Y%=6 60 IF BOMB%=0 THEN BOMB%=4 70 IF Y%<30 THEN M$=BM$:GOSUB 260:X%=X%+1 80 IF Y%=30 THEN IF X%<=55 THEN M$=BM$:GOSUB 260:X%=X%+1 ELSE IF X%>55 THEN M$=PARA$+CHR$(220)+CHR$(221)+CHR$(222):GOSUB 270:X%=X%+1: IF X%=80 THEN 190 90 IF X%=87 THEN M$=" ":GOSUB 260:X%=1:Y%=Y%-1:M$=SPACE$(89):GOSUB 260:Y%=Y%+2 100 IF Y%>=16 THEN IF MID$(B$(Y%-15),X%+2,1)<>" "THEN 220:OUT 247,192:PRINT B$; 110 I$=INKEY$:IF I$=" "THEN IF NOT(B%) THEN IF Y%<>30 THEN B%=-1:BX%=X%:BY%=Y%+1 120 IF I$=CHR$(27) THEN MEMORY h!:END 130 IF NOT(B%) THEN 70 140 M$=BOMB$(BOMB%):SWAP BX%,X%:SWAP BY%,Y%:GOSUB 260 150 M$=SPACE$(BOMB%):GOSUB 260:SWAP BX%,X%:SWAP BY%,Y% 160 IF BY%>=16 THEN MID$(B$(BY%-15),BX%+1,BOMB%)=SPACE$(BOMB%) 170 BY%=BY%+1:IF BY%=31 THEN B%=0 180 GOTO 70 190 IF BOMB%<4 THEN M$="WELL DONE! YOU MADE IT!":X%=3:Y%=8:GOSUB 260:GOSUB 630 ELSE M$="BRILLIANT! YOU ARE AN ACE PILOT":X%=3:Y%=8:GOSUB 260:GOSUB 630:M$="HERE IS A FINAL ENCORE FOR YOU!":GOSUB 260:FOR i=1 TO 2000:NEXT i:GOSUB 630:MEMORY h!:END 200 M$="HIT [EXIT] TO QUIT,ANYOTHER KEY TO PLAY AGAIN........" 210 X%=3:Y%=9:GOSUB 290:IF INPUT$(1)=CHR$(27) THEN MEMORY h!:END ELSE BOMB%=BOMB%-1:GOTO 50 220 FOR A%=0 TO 9:OUT 247,192:PRINT B$;:M$=BM$:GOSUB 260:M$=" ***":GOSUB 260:NEXT A% 230 M$=" "+CHR$(220)+CHR$(221)+STRING$(3,226):GOSUB 260:x%=x%+2:FOR y%=y% TO 28:OUT 247,192:FOR i=1 TO 40:NEXT i:M$=STRING$(2,226)+CHR$(7):GOSUB 260:x%=x%+1:NEXT y% 240 M$=STRING$(10,226)+CHR$(7):y%=29:GOSUB 260:FOR i =1 TO 5:M$=CHR$(7):OUT 247,192:GOSUB 260:NEXT i:x%=x%+1:y%=30:FOR i=1 TO 5:OUT 247,192:M$=CHR$(7)+STRING$(3,226)+CHR$(226)+CHR$(221)+CHR$(222)+STRING$(3,226):GOSUB 260:NEXT i 250 M$=" ":GOSUB 260:M$="YOU HAVE CRASHED!":X%=3:Y%=5:GOSUB 260:BOMB%=4:GOTO 200 260 PRINT AT$CHR$(32+Y%)CHR$(32+X%)M$:RETURN 270 FOR i=400 TO (x%^1.4):NEXT i: PRINT AT$CHR$(32+(Y%-1))CHR$(32+(X%-1))M$:RETURN 280 FOR i=400 TO (x%^1.2):NEXT i: PRINT AT$CHR$(32+(Y%-1))CHR$(32+(X%-1))M$:RETURN 290 PRINT AT$CHR$(32+Y%)CHR$(32+X%)M$;:RETURN 300 x%=30:y%=6:m$="PRESS [SPACE] TO DROP BOMBS":GOSUB 260:y%=0:m$="":GOSUB 260 310 FOR A%=1 TO 18:B$(A%)=SPACE$(90):NEXT:FOR X%=7 TO 81 STEP 3 320 R%=INT(RND*(16)+(10-(bomb%*3))):MID$(B$(R%),X%,3)=CHR$(150)+CHR$(154)+CHR$(156) 330 FOR A%=R%+1 TO 18 340 MID$(B$(A%),X%,3)=CHR$(151)+CHR$(154)+CHR$(157) 350 NEXT A%:NEXT X% 360 FOR A%=1 TO 12:PRINT:NEXT:FOR A%=1 TO 18:PRINT B$(A%):NEXT 370 X%=1:Y%=4:B%=0:PRINT TAB(4)R$SPACE$(81)RO$; 380 X%=1:Y%=0:M$=" ":y%=1:GOSUB 260:M$="":RETURN 390 DIM B$(25):R$=CHR$(27)+CHR$(112):RO$=CHR$(27)+CHR$(113) 400 GOSUB 510 410 PRINT CHR$(27)+"0":B$=CHR$(7) 420 BM$=CHR$(226)+CHR$(220)+CHR$(221)+CHR$(222):AT$=CHR$(27)+"Y" 430 PARA$=" "+CHR$(227)+CHR$(228)+STRING$(3,8)+CHR$(10)+" "+CHR$(229)+CHR$(230) 440 C$=CHR$(27)+"E"+CHR$(27)+"H":PRINT CHR$(27)+"B0"+CHR$(27)+"C" 450 PRINT C$ 460 RANDOMIZE(PEEK(64504!)):PRINT C$:RETURN 470 BOMB$(3)=CHR$(223)+CHR$(224)+CHR$(225) 480 BOMB$(2)=CHR$(223)+CHR$(225) 490 BOMB$(1)=CHR$(225) 500 BOMB$(4)=CHR$(223)+CHR$(224)+CHR$(224)+CHR$(225):RETURN 510 GOSUB 520:GOSUB 610:RETURN 520 REM "Music" 530 DATA 229,213,197,221,229,42,27,192,237,91,25,192,205,29,192,62 540 DATA 12,211,248,221,225,193,209,225,201,0,0,0,0,243,125,203 550 DATA 61,203,61,47,230,3,79,6,0,221,33,49,192,221,9,62 560 DATA 11,0,0,0,4,12,13,32,253,14,63,5,32,248,60,254 570 DATA 13,32,2,61,61,211,248,68,79,254,11,32,9,122,179,40 580 DATA 9,121,77,27,221,233,77,12,221,233,251,201 590 h!=HIMEM:MEMORY &HBFFF:FOR n=&HC000 TO &HC05B:READ d%:POKE n,d%:NEXT 600 A=&HC000:B=&HC019:C=&HC01B:RETURN 610 DIM e(10):FOR n%=0 TO 9:READ f:e(n%)=f:NEXT:RETURN 620 DATA 189.8765,210,234.4015,254.612,284,318,351,372,415,470 630 time$="953339933339933349559949111111111119000003000009" 640 note$="756666756666756666567777654321234567000007000007" 650 FOR i=1 TO LEN(time$):d=(VAL(MID$(time$,i,1))/9):f%=VAL(MID$(note$,i,1)) 660 f2=e(f%):t=3500000!/(f2*2):t=INT(t/4-30.125) 670 IF t<0 THEN t=1 680 f2=INT(f2*(d/3)):IF f2<0 THEN f2=1 690 POKE B,f2-256*INT(f2/256):POKE B+1,INT(f2/256) 700 POKE C,t-256*INT(t/256):POKE C+1,INT(t/256):CALL A:NEXT i:RETURN ===== Controles ===== SPACE = SOLTAR BOMBA EXIT = ABANDONAR PARTIDA ===== 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 Crash Landing 4.- Teclear run "Crashlnd" y pulsar la tecla "ENTER" ===== Descarga ===== * {{:otros:Crash Landing (Basic).zip|Crash Landing }}(juego en formato dsk, comprimido con zip)