====== CAR PARK ====== {{:otros:Car_park_p1.jpg?690|}} ===== Ficha ===== ^ Autor | ???????? | ^ Compatibilidad | Amstrad PCW 8256 / 8512 / 9512 | ^ Año | ???? | ^ Género | Arcade | ^ Controles | Teclado | ^ Idioma | Inglés | ^ Estado | [[preservado|Preservado]] | ===== Capturas ===== {{:otros:Car_park_screenshot01.png?220}} {{:otros:Car_park_screenshot02.png?220}} {{:otros:Car_park_screenshot03.png?220}} {{:otros:Car_park_screenshot04.png?220}} ===== Descripción ===== Bienvenido al aparcamiento, donde el objetivo del juego es conducir hasta el Quinto piso y aparcar su coche. El manejo del mismo está detallado en la sección "Controles" de ésta misma página. Cuidado con el coche fantasma que está patrullando la ciudad. Podremos ocultarnos del mismo con los gases del escape mientras conduces. Mientras circulamos pasaremos por interruptores secretos que abrirán la puerta de los garajes en el piso. Estas revelarán el contenido de las plazas de garaje. Deberemos entrar en cada plaza y recoger los objetos que nos muestran. Una flecha hacia arriba "↑" es la que nos lleva al siguiente piso, pero siempre y cuando hayamos obtenido primero la llave, pero antes de recoger la llave tendremos que recoger todos los objetos que aparecen dentro de los garajes. Las otras plazas de garaje parecen iguales, pero su contenido varía. Algunos te darán vidas extras, otros escudo limitado contra el coche fantasma, otros más puntos. Recuerde que deberemos de recoger todos los objetos que se encuentran en los garajes antes de recoger la llave. ===== Listado ===== * **__Listado - CAR.BAS__** 10 OPTION RUN:GOSUB 1470:yes=-1:WHILE yes:play=-1:lives=5:floor=1:score=0:PRINT cls$ 20 WHILE play:GOSUB 1090:GOSUB 40:WEND:GOSUB 510:WEND 30 PRINT e$"e"e$"1":MEMORY highmem!:RUN"menu 40 go=-1:key=0:sc=0:shield=0:cx=12:cy=4:CALL pr(cx,cy,caru$) 50 gx=72:gy=22:POKE pen,85:CALL pr(gx,gy,caru$):POKE pen,255 60 WHILE go:i$=LOWER$(INKEY$) 70 IF i$="o" THEN GOSUB 180 80 IF i$="p" THEN GOSUB 210 90 IF i$="s" THEN GOSUB 240 100 IF i$="x" THEN GOSUB 270 110 IF i$="q" THEN go=0:play=0:lives=0 120 GOSUB 340:IF shield=0 THEN IF cx=gx AND cy=gy THEN GOSUB 460 130 IF shield>0 THEN shield=shield-1:GOSUB 150 140 WEND:RETURN 150 a$=STR$(shield):a$=RIGHT$(a$,LEN(a$)-1):a$=LEFT$("000",3-LEN(a$))+a$ 160 POKE paper,85:x=62:y=25:CALL pr(x,y,a$):POKE paper,0:RETURN 170 REM Move car 180 IF a(cx-2,cy,0)=1 OR a(cx-1,cy,0)=1 THEN RETURN 190 POKE pen,85:CALL pr(cx,cy,b$):POKE pen,255 200 c=1:c$=carl$:cx=cx-2:CALL pr(cx,cy,c$):GOSUB 300:RETURN 210 IF a(cx+2,cy,0)=1 OR a(cx+1,cy,0)=1 THEN RETURN 220 POKE pen,85:CALL pr(cx,cy,b$):POKE pen,255 230 c=2:c$=carr$:cx=cx+2:CALL pr(cx,cy,c$):GOSUB 300:RETURN 240 IF a(cx,cy-1,0)=1 THEN RETURN 250 POKE pen,85:CALL pr(cx,cy,b$):POKE pen,255 260 c=3:c$=caru$:cy=cy-1:CALL pr(cx,cy,c$):GOSUB 300:RETURN 270 IF a(cx,cy+1,0)=1 THEN RETURN 280 POKE pen,85:CALL pr(cx,cy,b$):POKE pen,255 290 c=4:c$=card$:cy=cy+1:CALL pr(cx,cy,c$):GOSUB 300:RETURN 300 a=a(cx,cy,1):IF a>2 AND a<20 THEN GOSUB 590 310 IF a>20 THEN ON a-20 GOSUB 910,930,1000,1010,1020 320 a(cx,cy,1)=2:RETURN 330 REM Move ghost car 340 POKE pen,85:IF a(gx,gy,0)=2 THEN g=INT(RND*4)+1 350 IF a(gx,gy,1)=2 THEN g$=b$ELSE g$=sp$ 360 ON g GOSUB 370,390,410,430:POKE pen,255:RETURN 370 IF a(gx,gy-1,0)=1 THEN RETURN 380 CALL pr(gx,gy,g$):gy=gy-1:CALL pr(gx,gy,caru$):RETURN 390 IF a(gx,gy+1,0)=1 THEN RETURN 400 CALL pr(gx,gy,g$):gy=gy+1:CALL pr(gx,gy,card$):RETURN 410 IF a(gx-1,gy,0)=1 OR a(gx-2,gy,0)=1 THEN RETURN 420 CALL pr(gx,gy,g$):gx=gx-2:CALL pr(gx,gy,carl$):RETURN 430 IF a(gx+1,gy,0)=1 OR a(gx+2,gy,0)=1 THEN RETURN 440 CALL pr(gx,gy,g$):gx=gx+2:CALL pr(gx,gy,carr$):RETURN 450 REM Car and ghost collide 460 PRINT bleep$;:lives=lives-1:cx=12:cy=4:CALL pr(cx,cy,caru$):GOSUB 480 470 IF lives=0 THEN go=0:play=0:GOSUB 1070:RETURN ELSE RETURN 480 x=64:y=27:a$=STR$(lives):a$=RIGHT$(a$,LEN(a$)-1):IF LEN(a$)<2 THEN a$="0"+a$ 490 POKE paper,85:CALL pr(x,y,a$):POKE paper,0:RETURN 500 REM End-of-game messages 510 PRINT cls$:POKE double,1:IF floor=6 THEN a$="WELL DONE!"ELSE a$="Hard luck! 520 x=10:y=6:CALL pr(x,y,a$) 530 IF floor=6 THEN a$="You have parked your car!"ELSE a$="No lives left! 540 y=10:CALL pr(x,y,a$):y=14:a$="SCORE:"+STR$(score)+".":CALL pr(x,y,a$) 550 y=20:a$="Play again? (Y/N)":CALL pr(x,y,a$) 560 WHILE i$<>"Y"AND i$<>"N":i$=UPPER$(INKEY$):WEND 570 IF i$="N"THEN yes=0:RETURN ELSE RETURN 580 REM Expose squares 590 PRINT bleep$;:POKE pen,0:POKE paper,255 600 z=INT(RND*15)+1:IF square(z)=1 THEN 600 610 IF z=1 THEN x=14:y=5 620 IF z=2 THEN x=26:y=5 630 IF z=3 THEN x=38:y=5 640 IF z=4 THEN x=50:y=5 650 IF z=5 THEN x=62:y=5 660 IF z=6 THEN x=14:y=11 670 IF z=7 THEN x=26:y=11 680 IF z=8 THEN x=38:y=11 690 IF z=9 THEN x=50:y=11 700 IF z=10 THEN x=62:y=11 710 IF z=11 THEN x=14:y=17 720 IF z=12 THEN x=26:y=17 730 IF z=13 THEN x=38:y=17 740 IF z=14 THEN x=50:y=17 750 IF z=15 THEN x=62:y=17 760 a=x+2:a$=SPACE$(3):FOR b=y+1 TO y+3:CALL pr(a,b,a$):NEXT:POKE pen,255:POKE paper,0 770 IF z MOD 4=0 THEN PRINT FNat$(x,y+2," "):FOR a=0 TO 4:a(x+a,y+2,0)=0:NEXT 780 IF z MOD 4=1 THEN PRINT FNat$(x+9,y+2," "):FOR a=3 TO 9:a(x+a,y+2,0)=0:NEXT 790 IF z MOD 4=2 THEN a=x+4:CALL pr(a,y,sp$):FOR b=0 TO 2:a(x+4,y+b,0)=0:NEXT 800 IF z MOD 4=3 THEN a=x+4:b=y+4:CALL pr(a,b,sp$):FOR b=2 TO 4:a(x+4,y+b,0)=0:NEXT 810 POKE pen,0:POKE paper,255:x=x+4:y=y+2 820 ON a(cx,cy,1)-2 GOSUB 840,860,870,870,880,890,890,890,890,890,890,890,890,890,890 830 square(z)=1:POKE pen,255:POKE paper,0:RETURN 840 IF floor<5 THEN u$="^"ELSE u$=p$ 850 CALL pr(x,y,u$):a(x,y,1)=21:RETURN 860 CALL pr(x,y,key$):a(x,y,1)=22:RETURN 870 CALL pr(x,y,caru$):a(x,y,1)=23:RETURN 880 CALL pr(x,y,caru$):a(x,y,1)=24:RETURN 890 CALL pr(x,y,caru$):a(x,y,1)=25:RETURN 900 REM Car triggers squares 910 IF key THEN PRINT bleep$;:floor=floor+1:GOSUB 1030:go=0:GOSUB 1070:IF floor=6 THEN play=0:RETURN ELSE RETURN 920 POKE pen,0:POKE paper,255:CALL pr(cx,cy,u$):GOSUB 950:RETURN 930 IF sc=10 THEN PRINT bleep$;:key=-1:GOSUB 1030:score=score+250:GOSUB 1050:RETURN 940 POKE pen,0:POKE paper,255:CALL pr(cx,cy,key$) 950 POKE paper,0:POKE pen,255:PRINT bleep$;:ON c GOSUB 960,970,980,990:CALL pr(cx,cy,c$):RETURN 960 cx=cx+2:RETURN 970 cx=cx-2:RETURN 980 cy=cy+1:RETURN 990 cy=cy-1:RETURN 1000 PRINT bleep$:shield=shield+175:GOSUB 1030:RETURN 1010 PRINT bleep$:lives=lives+2:GOSUB 480:GOSUB 1030:RETURN 1020 PRINT bleep$;:sc=sc+1:score=score+100:GOSUB 1050:GOSUB 1030:RETURN 1030 a$=SPACE$(3):a=cx-2:FOR b=cy-1 TO cy+1:CALL pr(a,b,a$):NEXT 1040 CALL pr(cx,cy,c$):RETURN 1050 x=28:y=27:a$=STR$(score):a$=RIGHT$(a$,LEN(a$)-1):a$=LEFT$("0000",4-LEN(a$))+a$ 1060 POKE paper,85:CALL pr(x,y,a$):POKE paper,0:RETURN 1070 FOR a=0 TO 2000:NEXT:RETURN 1080 REM Draw screen 1090 POKE paper,85:POKE double,0:POKE pen,255:IF floor=1 THEN GOSUB 1100:GOSUB 1190:RETURN ELSE GOSUB 1190:RETURN 1100 x=11:a$=STRING$(62,154) 1110 a1$=CHR$(150)+a$+CHR$(156):PRINT FNat$(x,0,a1$);FNat$(x,24,a1$); 1120 x1=74:a1$=CHR$(149):PRINT FNat$(x,1,a1$);FNat$(x1,1,a1$); 1130 FOR y=25 TO 27 STEP 2:PRINT FNat$(x,y,a1$);FNat$(x1,y,a1$);:NEXT 1140 a1$=CHR$(151)+a$+CHR$(157):PRINT FNat$(x,26,a1$); 1150 a1$=CHR$(147)+a$+CHR$(153):PRINT FNat$(x,2,a1$);FNat$(x,28,a1$); 1160 a$=SPACE$(4)+carr$+" "+carr$+" C A R P A R K "+carl$+" "+carl$+SPACE$(4) 1170 x=12:y=1:CALL pr(x,y,a$):a$=" Score:"+SPACE$(12)+"Lives:"+SPACE$(6) 1180 y=27:CALL pr(x,y,a$):GOSUB 480:GOSUB 1050:POKE paper,85:RETURN 1190 a$=" Please wait..."+SPACE$(16):x=12:y=25:CALL pr(x,y,a$):POKE paper,0 1200 a$=CHR$(150):x=11:y=3:PRINT FNat$(x,y,a$);:a(x,y,0)=1 1210 a$=CHR$(154):FOR x=12 TO 73:PRINT FNat$(x,y,a$);:a(x,y,0)=1:NEXT 1220 a$=CHR$(156):PRINT FNat$(x,y,a$);:a(x,y,0)=1 1230 x=11:x1=74:a$=CHR$(149):a1$=SPACE$(62):FOR y=4 TO 22 1240 PRINT FNat$(x,y,a$);FNat$(x+1,y,a1$);FNat$(x1,y,a$);:a(x,y,0)=1:a(x1,y,0)=1:NEXT 1250 a$=CHR$(147):PRINT FNat$(x,y,a$);:a(x,y,0)=1 1260 a$=CHR$(154):FOR x=12 TO 73:PRINT FNat$(x,y,a$);:a(x,y,0)=1:NEXT 1270 a$=CHR$(153):PRINT FNat$(x,y,a$);:a(x,y,0)=1 1280 FOR x=14 TO 62 STEP 12:FOR y=5 TO 17 STEP 6 1290 a$=CHR$(150):PRINT FNat$(x,y,a$);:a(x,y,0)=1 1300 a$=CHR$(154):FOR a=1 TO 8:PRINT FNat$(x+a,y,a$);:a(x+a,y,0)=1:NEXT 1310 a$=CHR$(156):PRINT FNat$(x+a,y,a$);:a(x+a,y,0)=1 1320 a$=CHR$(149):FOR a=1 TO 3:PRINT FNat$(x,y+a,a$);FNat$(x+9,y+a,a$); 1330 FOR b=1 TO 8:a(x+b,y+a,0)=1:NEXT:a(x,y+a,0)=1:a(x+9,y+a,0)=1:NEXT 1340 a$=CHR$(147):PRINT FNat$(x,y+a,a$);:a(x,y+a,0)=1 1350 a$=CHR$(154):FOR b=1 TO 8:PRINT FNat$(x+b,y+a,a$);:a(x+b,y+a,0)=1:NEXT 1360 a$=CHR$(153):PRINT FNat$(x+b,y+a,a$);:a(x+b,y+a,0)=1:NEXT y,x 1370 FOR x=12 TO 72 STEP 12:FOR y=4 TO 22:a(x,y,1)=1:NEXT y,x 1380 FOR x=12 TO 72 STEP 2:FOR y=4 TO 22 STEP 6:a(x,y,1)=1:NEXT y,x 1390 FOR x=12 TO 72 STEP 12:FOR y=4 TO 22 STEP 6:a(x,y,0)=2:NEXT y,x 1400 FOR a=3 TO 17 1410 x=INT(RND*31)*2+12:y=INT(RND*19)+4:IF a(x,y,1)<>1 THEN 1410 1420 a(x,y,1)=a:NEXT:POKE paper,85 1430 a$=" Floor:"+STR$(floor)+SPACE$(8)+"Shield: 000"+SPACE$(2) 1440 x=12:y=25:CALL pr(x,y,a$):POKE paper,0 1450 FOR a=1 TO 15:square(a)=0:NEXT:RETURN 1460 REM Set up 1470 DEFINT a-z:highmem!=HIMEM:MEMORY &HCFFF:e$=CHR$(27):cls$=e$+"E"+e$+"H" 1480 DEF FNat$(x,y,a$)=e$+"Y"+CHR$(32+y)+CHR$(32+x)+a$ 1490 DIM a(74,23,1),square(15) 1500 PRINT cls$e$"f"e$"0";:title$=" * * * C A R P A R K * * * ":a=LEN(title$) 1510 b=(90-a)/2:PRINT e$"p";FNat$(b,0,SPACE$(a));FNat$(b,1,title$);FNat$(b,2,SPACE$(a));e$"q 1520 PRINT:PRINT TAB(8)"Welcome to the Car Park, where the aim of the game is to drive up to the":PRINT TAB(8)"fifth floor and park your car.":PRINT 1530 PRINT TAB(8)"Steer your vehicle by pressing 'o' to move left":PRINT TAB(39)"'p' to move right":PRINT TAB(39)"'s' to move up and":PRINT TAB(39)"'x' to move down.":PRINT TAB(8)"Press 'q' to quit the game.":PRINT 1540 PRINT TAB(8)"Watch out for the ghost car on patrol. He is easily hidden in your":PRINT TAB(8)"exhaust fumes!":PRINT 1550 PRINT TAB(8)"As you drive around you will pass over secret switches in the floor. These":PRINT TAB(8)"will reveal the contents of the squares. You must enter each square and":PRINT TAB(8)"collect the contents.":PRINT 1560 PRINT TAB(8)"An up arrow (^) takes you to the next floor, provided you have obtained a key. 1570 PRINT TAB(8)"The other squares all look the same, but their contents vary. Some give you":PRINT TAB(8)"extra lives, others a limited shield against the ghost car, others more points. 1580 PRINT TAB(8)"All the points must be collected before you can get a key.":PRINT 1590 RESTORE 1750:address=&HE000 1600 READ code:WHILE code<256:POKE address,code:address=address+1:READ code:WEND 1610 screen=&HE000:pr=&HE003:UDGs=&HD100:pen=&HD001:paper=&HD000:double=&HD006 1620 RESTORE 1680:FOR i=0 TO 47:READ j:POKE udgs+i,j:NEXT 1630 caru$=CHR$(0):card$=CHR$(1):carr$=CHR$(2):carl$=CHR$(3):key$=CHR$(4):p$=CHR$(5) 1640 RANDOMIZE PEEK(64504!):b$=CHR$(187):sp$=" ":bleep$=CHR$(7) 1650 a$="p Press a key to play. ":PRINT:PRINT TAB((90-LEN(a$)+1)/2)e$a$e$"q":WHILE INKEY$="":WEND 1660 CALL screen:RETURN 1670 REM Graphics data 1680 DATA 20,62,34,62,62,62,34,28 1690 DATA 28,34,62,62,62,34,62,20 1700 DATA 0,0,126,187,186,187,126,0 1710 DATA 0,0,126,221,93,221,126,0 1720 DATA 0,224,191,191,167,229,0,0 1730 DATA 255,129,189,165,189,161,161,255 1740 REM Machine code 1750 DATA 195,6,224,195,91,224,205,41,224,17,152,44,33,0,182,1,104,1,62 1760 DATA 32,245,213,62,8,115,35,114,35,19,61,32,248,209,235,9,235,241,61 1770 DATA 32,236,201,193,205,90,252,233,0,201,102,26,111,34,2,208,10,50,16 1780 DATA 208,3,10,111,3,10,103,237,75,16,208,6,0,17,19,208,237,176,42 1790 DATA 2,208,205,252,224,34,4,208,33,19,208,34,17,208,201,205,48,224,205 1800 DATA 41,224,243,42,17,208,126,35,34,17,208,205,234,224,17,79,225,1,8 1810 DATA 0,237,176,221,42,4,208,14,8,253,33,79,225,42,0,208,125,6,8 1820 DATA 253,203,0,6,56,13,7,221,203,8,22,221,203,0,22,7,195,164,224 1830 DATA 203,4,221,203,8,22,221,203,0,22,203,4,221,203,8,22,221,203,0 1840 DATA 22,16,215,253,35,58,6,208,167,202,209,224,221,126,8,221,119,9,221 1850 DATA 126,0,221,119,1,221,35,121,254,5,194,209,224,1,200,2,221,9,79 1860 DATA 221,35,13,194,130,224,42,4,208,1,16,0,9,34,4,208,33,16,208 1870 DATA 53,194,98,224,251,201,17,0,184,254,32,48,3,17,0,209,111,38,0 1880 DATA 41,41,41,25,201,92,38,0,84,203,37,1,15,225,9,78,35,70,235 1890 DATA 41,41,41,9,201,48,89,0,92,208,94,160,97,112,100,64,103,16,106 1900 DATA 224,108,176,111,128,114,80,117,32,120,240,122,192,125,144,128,96,131,48 1910 DATA 134,0,137,208,139,160,142,112,145,64,148,16,151,224,153,176,156,128,159 1920 DATA 80,162,32,165,240,167,192,170,144,173,96,176,0,0,0,0,0,0,256 ===== Controles ===== O = IZQUIERDA P = DERECHA S = ARRIBA X = ABAJO Q = ABANDONAR ===== 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 Car Park 4.- Teclear run "Car" y pulsar la tecla "ENTER" ===== Descarga ===== * {{:otros:Car Park (Basic).zip|Car Park }}(juego en formato dsk, comprimido con zip)