Herramientas de usuario

Herramientas del sitio


es:car_park

CAR PARK

Ficha

Autor ????????
Compatibilidad Amstrad PCW 8256 / 8512 / 9512
Año ????
Género Arcade
Controles Teclado
Idioma Inglés
Estado Preservado

Capturas

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

  • Car Park (juego en formato dsk, comprimido con zip)
es/car_park.txt · Última modificación: 2022/06/30 10:27 por jevicac