Herramientas de usuario

Herramientas del sitio


es:car_park

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

es:car_park [2017/01/27 12:34]
jevicac creado
es:car_park [2017/01/27 12:37]
jevicac
Línea 27: Línea 27:
 ===== Listado ===== ===== Listado =====
  
-  * **__Listado - MARCIANO.BAS__**+  * **__Listado - CAR.BAS__**
  
 <​file>​ <​file>​
-10  '​ ************************************************* +10 OPTION RUN:GOSUB 1470:yes=-1:WHILE yes:play=-1:lives=5:floor=1:score=0:PRINT cls$ 
-20  ' Tenemos visita +20 WHILE play:GOSUB 1090:GOSUB 40:​WEND:​GOSUB 510:WEND 
-30  ' ​--------------------------------------------- +30 PRINT e$"​e"​e$"​1":​MEMORY highmem!:RUN"​menu 
-40  ' Mallard Basic  +40 go=-1:key=0:sc=0:shield=0:cx=12:cy=4:CALL pr(cx,cy,caru$) 
-50  ' ============================================= +50 gx=72:​gy=22:​POKE pen,85:CALL pr(gx,​gy,​caru$):POKE pen,255 
-60  ' Por; Juan Jose Perez Torres +60 WHILE go:i$=LOWER$(INKEY$
-70  ' --------------------------------------------- +70 IF i$="o" ​THEN GOSUB 180 
-80  ' Junio-Julio ​ de 1989 +80 IF i$="p" ​THEN GOSUB 210 
-90  ' ************************************************* +90 IF i$="s" ​THEN GOSUB 240 
-100 ' +100 IF i$="x" ​THEN GOSUB 270 
-130 ' +110 IF i$="q" ​THEN go=0:play=0:lives=0 
-140 ' +120 GOSUB 340:IF shield=0 THEN IF cx=gx AND cy=gy THEN GOSUB 460 
-150 ' +130 IF shield>0 THEN shield=shield-1:​GOSUB 150 
-160 '  +140 WEND:​RETURN 
-170 OPTION RUN:CLEAR:DIM pantalla(27,​90) +150 a$=STR$(shield):a$=RIGHT$(a$,LEN(a$)-1):a$=LEFT$("000",3-LEN(a$))+a
-180 +160 POKE paper,85:x=62:​y=25:​CALL pr(x,y,a$):POKE paper,​0:​RETURN 
-190 alienigena=0:cx=35:disparo=0:disparo1=0:per=1:puntos=+170 REM Move car 
-200 : +180 IF a(cx-2,cy,0)=1 OR a(cx-1,cy,0)=1 THEN RETURN 
-210 BORRA$=CHR$(27)+"​E"​+CHR$(27)+"​H"​ +190 POKE pen,85:CALL pr(cx,cy,b$):POKE pen,255 
-220 SUBRON$=CHR$(27)+"​r"​:SUBROFF$=CHR$(27)+"​u"​ +200 c=1:c$=carl$:​cx=cx-2:​CALL pr(cx,cy,c$):GOSUB 300:RETURN 
-230 CLARO$=CHR$(27)+"bb"+CHR$(27)+"cc":OSCURO$=CHR$(27)+"cb"+CHR$(27)+"bc+210 IF a(cx+2,cy,0)=1 OR a(cx+1,cy,0)=1 THEN RETURN 
-240 CUROFF$=CHR$(27)+"f":CURON$=CHR$(27)+"​e"​ +220 POKE pen,85:CALL pr(cx,cy,b$):POKE pen,255 
-250 VIDEON$=CHR$(27)+"​p"​:VIDEOFF$=CHR$(27)+"​q"​ +230 c=2:c$=carr$:cx=cx+2:CALL pr(cx,cy,c$):GOSUB 300:​RETURN 
-260 DEF FNtab$(x,y,texto$)=CHR$(27)+"Y"+CHR$(32+x)+CHR$(32+y)+texto+240 IF a(cx,cy-1,0)=1 THEN RETURN 
-270 : +250 POKE pen,85:CALL pr(cx,cy,b$):POKE pen,255 
-280 alienigena$(1)=CHR$(188)+CHR$(189+260 c=3:c$=caru$:cy=cy-1:CALL pr(cx,​cy,​c$):​GOSUB ​300:RETURN 
-290 alienigena$(2)=CHR$(190)+CHR$(191+270 IF a(cx,cy+1,0)=THEN RETURN 
-300 alienigena$(3)=CHR$(192)+CHR$(193+280 POKE pen,85:CALL pr(cx,cy,b$):​POKE ​pen,255 
-310 alienigena$(4)=CHR$(194)+CHR$(195+290 c=4:c$=card$:cy=cy+1:CALL pr(cx,cy,c$):GOSUB 300:​RETURN 
-320 canon$=CHR$(32)+CHR$(197)+CHR$(32+300 a=a(cx,cy,1):IF a>2 AND a<20 THEN GOSUB 590 
-330 ' +310 IF a>20 THEN ON a-20 GOSUB 910,930,1000,1010,1020 
-340 ' +320 a(cx,cy,1)=2:​RETURN 
-350 ' +330 REM Move ghost car 
-360 RESTORE 470 +340 POKE pen,85:IF a(gx,gy,0)=2 THEN g=INT(RND*4)+1 
-370 : +350 IF a(gx,gy,1)=2 THEN g$=b$ELSE g$=sp$ 
-380 PRINT BORRA+360 ON g GOSUB 370,390,410,430:POKE pen,255:​RETURN 
-390 MEMORY 62210! +370 IF a(gx,gy-1,0)=1 THEN RETURN 
-400 d=62928!:inic=d:GOSUB 440 +380 CALL pr(gx,gy,g$):​gy=gy-1:​CALL pr(gx,gy,caru$):RETURN 
-410 d=62212!:bol=d:​GOSUB ​440 +390 IF a(gx,gy+1,0)=1 THEN RETURN 
-420 GOTO 510 +400 CALL pr(gx,gy,g$):​gy=gy+1:​CALL pr(gx,gy,card$):​RETURN 
-430 +410 IF a(gx-1,gy,0)=1 OR a(gx-2,gy,0)=1 THEN RETURN 
-440 READ a$:IF a$="​$" ​THEN RETURN +420 CALL pr(gx,gy,g$):​gx=gx-2:​CALL pr(gx,gy,carl$):​RETURN 
-450 byte=VAL("&​H"​+a$):​POKE ​d,byte:d=d+1 +430 IF a(gx+1,gy,0)=1 OR a(gx+2,gy,0)=1 THEN RETURN 
-460 GOTO 440 +440 CALL pr(gx,gy,g$):​gx=gx+2:​CALL pr(gx,gy,carr$):RETURN 
-470 DATA 2A,01,00,11,​57,​00,​19,​22,​02,​F6,​01,​E3,​F5,​CD,​01,​F6,​E9,​00,​C9,​11,​98,​2C,​21,​00,​B6,​06,20,C5,06,08,73,23,72,23,13,10,F9,E5,EB,01,60,01,09,EB,E1,C1,10,​EB,​C9,​C3,​00,​00,$ +450 REM Car and ghost collide 
-480 DATA 7E,32,40,F3,21,40,F3,06,08,1A,23,77,13,13,10,F9,2A,01,00,11,57,00,​19,​22,​3E,​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,​EB,​01,​08,​00,​ED,​B0,​C9,​C3,​38,​00,​0B,​00,​B0,​04,​87,​20,​4C,​44,​49,$ +460 PRINT bleep$;:lives=lives-1:cx=12:cy=4:CALL pr(cx,cy,caru$):GOSUB 480 
-490 +470 IF lives=0 THEN go=0:play=0:​GOSUB 1070:RETURN ELSE RETURN 
-500 CALL inic +480 x=64:​y=27:​a$=STR$(lives):a$=RIGHT$(a$,LEN(a$)-1):IF LEN(a$)<​2 THEN a$="​0"​+a$ 
-510 RESTORE 530:FOR d=1 TO 43:READ char$:char%=VAL(char$):FOR z%=0 TO 7:READ d$(z%):d%(z%)=VAL(d$(z%)):NEXT z%:CALL bol(char%,d%(0)):NEXT d +490 POKE paper,85:CALL pr(x,y,a$):POKE paper,​0:​RETURN 
-520 +500 REM End-of-game messages 
-530 DATA 160,0,​0,​14,​63,​127,127,15,15 +510 PRINT cls$:POKE double,1:IF floor=6 THEN a$="​WELL DONE!"​ELSE a$="​Hard luck! 
-540 DATA 161,0,0,0,​252,​254,​248,243,247 +520 x=10:​y=6:​CALL pr(x,y,a$) 
-550 DATA 162,0,31,63,31,31,24,0,0 +530 IF floor=6 THEN a$="​You have parked your car!"​ELSE a$="No lives left! 
-560 DATA 163,​0,​192,​192,​3,​135,​15,​15,​1 +540 y=10:CALL pr(x,y,a$):​y=14:​a$="​SCORE:"​+STR$(score)+"​.":​CALL pr(x,y,a$) 
-570 DATA 164,0,​0,​1,​255,​255,​255,​255,​255 +550 y=20:​a$="​Play again? ​ (Y/​N)":​CALL pr(x,y,a$) 
-580 DATA 165,​0,​240,​255,​255,​255,​255,​255,​255 +560 WHILE i$<>"​Y"​AND i$<>"​N":​i$=UPPER$(INKEY$):​WEND 
-590 DATA 166,0,0,254,255,​255,​255,​241,​252 +570 IF i$="​N"​THEN yes=0:RETURN ELSE RETURN ​ 
-600 DATA 167,​31,​63,​63,​63,​63,​63,​63,​30 +580 REM Expose squares 
-610 DATA 168,​255,​255,​254,​252,​248,​240,​224,​96 +590 PRINT bleep$;:​POKE pen,0:POKE paper,255 
-620 DATA 169,​15,​31,​31,​127,​112,​28,​255,​255 +600 z=INT(RND*15)+1:​IF square(z)=1 THEN 600 
-630 DATA 170,​255,​255,​255,​159,​63,​63,​223,​220 +610 IF z=1 THEN x=14:y=5 
-640 DATA 171,​255,​255,​255,​255,​255,​255,​255,​127 +620 IF z=2 THEN x=26:y=5 
-650 DATA 172,​252,​253,​253,​241,​248,​248,​252,​248 +630 IF z=3 THEN x=38:y=5 
-660 DATA 173,​28,​15,​7,​1,​0,​0,​0,​0 +640 IF z=4 THEN x=50:y=5 
-670 DATA 174,​96,​96,​0,​188,​254,​127,​127,​63 +650 IF z=5 THEN x=62:y=5 
-680 DATA 175,​1,​1,​1,​1,​0,​0,​0,​224 +660 IF z=6 THEN x=14:y=11 
-690 DATA 176,​255,​255,​255,​255,​255,​79,​7,​7 +670 IF z=7 THEN x=26:y=11 
-700 DATA 177,​239,​239,​240,​252,​252,​252,​240,​240 +680 IF z=8 THEN x=38:y=11 
-710 DATA 178,​63,​61,​28,​24,​8,​0,​0,​0 +690 IF z=9 THEN x=50:y=11 
-720 DATA 179,​240,​240,​112,​64,​64,​32,​0,​0 +700 IF z=10 THEN x=62:y=11 
-730 DATA 180,​127,​127,​63,​31,​31,​15,​15,​15 +710 IF z=11 THEN x=14:y=17 
-740 DATA 181,​240,​240,​240,​224,​224,​192,​128,​128 +720 IF z=12 THEN x=26:y=17 
-750 DATA 182,​7,​7,​7,​7,​3,3,1,+730 IF z=13 THEN x=38:y=17 
-760 DATA 183,240,​240,​246,​230,​236,​192,​128,0 +740 IF z=14 THEN x=50:y=17 
-770 DATA 184,0,1,3,15,31,31,31,25 +750 IF z=15 THEN x=62:y=17 
-780 DATA 185,0,208,248,248,248,​248,​240,​240 +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 
-790 DATA 186,15,15,6,6,2,2,0,+770 IF z MOD 4=THEN PRINT FNat$(x,y+2," "):FOR a=0 TO 4:a(x+a,y+2,0)=0:NEXT 
-800 DATA 187,224,0,0,0,0,0,0,+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 
-810 DATA 188,3,​5,​127,​70,​67,2,18,30 +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 
-820 DATA 189,194,162,254,96,192,64,72,120      +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 
-830 DATA 190,0,3,5,7,30,63,48,48 +810 POKE pen,0:POKE paper,255:​x=x+4:​y=y+
-840 DATA 191,0,192,​160,​224,​120,​252,​12,​12 +820 ON a(cx,cy,1)-2 GOSUB 840,860,870,870,880,890,890,890,890,890,890,890,890,890,890 
-850 DATA 192,99,101,127,6,​3,​127,​96,​96 +830 square(z)=1:​POKE pen,255:POKE paper,0:RETURN 
-860 DATA 193,198,166,254,96,​192,​254,​6,​6 +840 IF floor<5 THEN u$="​^"​ELSE u$=p$ 
-870 DATA 194,0,7,77,127,​78,​71,​67,​64 +850 CALL pr(x,y,u$):a(x,y,1)=21:​RETURN 
-880 DATA 195,0,224,178,254,​114,​226,​194,​2 +860 CALL pr(x,y,key$):a(x,y,1)=22:​RETURN 
-890 DATA 196,255,24,60,126,​126,​126,​60,​24 +870 CALL pr(x,y,caru$):a(x,y,1)=23:​RETURN 
-900 DATA 197,​60,​60,​60,​60,​60,​60,​255,​255 +880 CALL pr(x,y,caru$):a(x,y,1)=24:​RETURN 
-910 DATA 198,0,​24,​60,​60,​60,​60,​24,​126 +890 CALL pr(x,y,caru$):a(x,y,1)=25:​RETURN 
-920 DATA 199,​126,​24,​60,​60,​60,​60,​24,0 +900 REM Car triggers squares 
-930 DATA 200,255,0,170,​85,​170,​85,​0,​255 +910 IF key THEN PRINT bleep$;:​floor=floor+1:​GOSUB 1030:go=0:GOSUB 1070:IF floor=6 THEN play=0:​RETURN ELSE RETURN 
-940 DATA 201,255,0,0,0,0,0,0,0 +920 POKE pen,0:POKE paper,255:CALL pr(cx,cy,u$):GOSUB 950:​RETURN 
-950 DATA 202,0,0,0,0,0,0,0,255 +930 IF sc=10 THEN PRINT bleep$;:​key=-1:​GOSUB 1030:​score=score+250:​GOSUB 1050:RETURN 
-960  '​ +940 POKE pen,0:POKE paper,255:CALL pr(cx,cy,key$) 
-970  '​ +950 POKE paper,0:POKE pen,255:PRINT bleep$;:ON c GOSUB 960,970,980,990:CALL pr(cx,cy,c$):RETURN 
-980  '​ Presentacion +960 cx=cx+2:​RETURN 
-990  '​ +970 cx=cx-2:​RETURN 
-1000  '​ +980 cy=cy+1:​RETURN 
-1010  PRINT CUROFF+990 cy=cy-1:​RETURN 
-1020 a$=CHR$(160)+CHR$(161)+CHR$(162)+CHR$(163)+CHR$(164)+CHR$(165)+CHR$(166):x=3:y=2:​GOSUB ​1080 +1000 PRINT bleep$:​shield=shield+175:​GOSUB 1030:RETURN 
-1030 a$=CHR$(167)+CHR$(168)+CHR$(32)+CHR$(169)+CHR$(170)+CHR$(171)+CHR$(172):x=4:y=2:GOSUB 1080 +1010 PRINT bleep$:​lives=lives+2:​GOSUB 480:GOSUB 1030:RETURN 
-1040 a$=CHR$(173)+CHR$(174)+CHR$(175)+CHR$(176)+CHR$(177)+CHR$(178)+CHR$(179):x=5:y=2:GOSUB 1080 +1020 PRINT bleep$;:​sc=sc+1:​score=score+100:​GOSUB 1050:GOSUB 1030:​RETURN 
-1050 a$=CHR$(32)+CHR$(180)+CHR$(181)+CHR$(182)+CHR$(183)+CHR$(32)+CHR$(184)+CHR$(185):x=6:y=2:GOSUB 1080 +1030 a$=SPACE$(3):a=cx-2:FOR b=cy-1 TO cy+1:CALL pr(a,b,a$):NEXT 
-1060 a$=CHR$(32)+CHR$(186)+STRING$(5,32)+CHR$(187):x=7:y=2:GOSUB 1080 +1040 CALL pr(cx,cy,c$):RETURN 
-1070 GOTO 1090 +1050 x=28:​y=27:​a$=STR$(score):a$=RIGHT$(a$,LEN(a$)-1):a$=LEFT$("​0000",​4-LEN(a$))+a$ 
-1080 PRINT FNtab$(x,y,a$):RETURN +1060 POKE paper,​85:​CALL pr(x,y,a$):POKE paper,​0:​RETURN 
-1090 : +1070 FOR a=0 TO 2000:NEXT:​RETURN 
-1100 frase$="​TENEMOS VISITA ":GOSUB 1110:GOTO 1220 +1080 REM Draw screen 
-1110 FOR I=90-LEN(frase$) TO 20 STEP -1 +1090 POKE paper,​85:​POKE double,​0:​POKE pen,255:IF floor=1 THEN GOSUB 1100:​GOSUB ​1190:RETURN ELSE GOSUB 1190:RETURN 
-1120 PRINT FNtab$(3,I,frase$+CHR$(32)+1100 x=11:a$=STRING$(62,154) 
-1130 NEXT I +1110 a1$=CHR$(150)+a$+CHR$(156):PRINT FNat$(x,0,a1$);FNat$(x,24,a1$)
-1140 PRINT SUBRON$ +1120 x1=74:a1$=CHR$(149):PRINT FNat$(x,​1,​a1$);​FNat$(x1,​1,​a1$);​ 
-1150 FOR I=TO LEN(frase$)-1 +1130 FOR y=25 TO 27 STEP 2:PRINT FNat$(x,​y,​a1$);​FNat$(x1,​y,​a1$);:​NEXT 
-1160 PRINT FNtab$(3,19+I,MID$(frase$,I,1)+1140 a1$=CHR$(151)+a$+CHR$(157):PRINT FNat$(x,26,a1$)
-1170 FOR TIME=1 TO 100:NEXT TIME +1150 a1$=CHR$(147)+a$+CHR$(153):PRINT FNat$(x,2,​a1$);​FNat$(x,​28,​a1$);​ 
-1180 NEXT I +1160 a$=SPACE$(4)+carr$+" "+carr$+" C A R   P A R K "+carl$+" "+carl$+SPACE$(4) 
-1190 PRINT SUBROFF$ +1170 x=12:y=1:CALL pr(x,y,a$):a$=" Score:"​+SPACE$(12)+"​Lives:"​+SPACE$(6) 
-1200 RETURN +1180 y=27:CALL pr(x,y,a$):GOSUB 480:GOSUB 1050:POKE paper,​85:​RETURN 
-1210 : +1190 a$=" Please wait..."​+SPACE$(16):x=12:y=25:CALL pr(x,y,a$):POKE paper,0 
-1220 x=5:y=20:a$="El planeta Tierra, esta siendo invadido por seres extraterrestres."​:GOSUB 1270 +1200 a$=CHR$(150):x=11:y=3:PRINT FNat$(x,y,a$);:a(x,y,0)=1 
-1230 x=7:y=20:a$="El gobierno de los Estados Unidos, te ha elegido para acabar con esta ":GOSUB 1270 +1210 a$=CHR$(154):FOR x=12 TO 73:PRINT FNat$(x,y,a$);:a(x,y,0)=1:NEXT 
-1240 x=9:y=20:​a$="​molesta visita. Si quieres que te sea sincero, ya puedes ir rezando":​GOSUB 1270 +1220 a$=CHR$(156):PRINT FNat$(x,y,a$);:a(x,y,0)=1 
-1250 x=11:y=20:a$="por tu propia vida.":GOSUB 1270 +1230 x=11:x1=74:a$=CHR$(149):a1$=SPACE$(62):FOR y=4 TO 22 
-1260 GOSUB 1320 +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 
-1270 FOR I=1 TO LEN(a$) +1250 a$=CHR$(147):PRINT FNat$(x,y,a$);:a(x,y,0)=1 
-1280 PRINT FNtab$(x,y+(I-1),MID$(a$,I,1)+1260 a$=CHR$(154):FOR x=12 TO 73:PRINT FNat$(x,y,a$);:a(x,y,0)=1:NEXT 
-1290 FOR R=1 TO 100:NEXT R +1270 a$=CHR$(153):PRINT FNat$(x,y,a$);:a(x,y,0)=1 
-1300 NEXT I +1280 FOR x=14 TO 62 STEP 12:FOR y=TO 17 STEP 6 
-1310 RETURN +1290 a$=CHR$(150):​PRINT ​FNat$(x,y,a$);:a(x,y,0)=1 
-1320 FOR I=5 TO 85:FOR J=5 TO 11 +1300 a$=CHR$(154):FOR a=TO 8:​PRINT ​FNat$(x+a,y,a$);:a(x+a,y,0)=1:NEXT 
-1330 pantalla(J,I)=+1310 a$=CHR$(156):PRINT FNat$(x+a,y,a$);:a(x+a,y,0)=1 
-1340 NEXT J,I +1320 a$=CHR$(149):FOR a=1 TO 3:PRINT FNat$(x,​y+a,​a$);​FNat$(x+9,y+a,a$)
-1350 : +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  
-1360 frase$="​Presenta,​ Juan Jose Perez Torres"​ +1340 a$=CHR$(147):PRINT FNat$(x,y+a,a$);:a(x,y+a,0)=1 
-1370 PRINT VIDEON$ +1350 a$=CHR$(154):FOR b=1 TO 8:​PRINT ​FNat$(x+b,y+a,a$);:a(x+b,y+a,0)=1:NEXT 
-1380 PRINT FNtab$(18,45,STRING$(LEN(frase$)+2,CHR$(32))) +1360 a$=CHR$(153):​PRINT ​FNat$(x+b,y+a,a$);:a(x+b,y+a,0)=1:NEXT y,x 
-1390 PRINT FNtab$(19,45,CHR$(32)+frase$+CHR$(32)) +1370 FOR x=12 TO 72 STEP 12:FOR y=4 TO 22:a(x,y,1)=1:NEXT y,x 
-1400 PRINT FNtab$(20,45,STRING$(LEN(frase$)+2,CHR$(32))+1380 FOR x=12 TO 72 STEP 2:FOR y=TO 22 STEP 6:a(x,y,​1)=1:​NEXT ​y,x 
-1410 PRINT VIDEOFF$ +1390 FOR x=12 TO 72 STEP 12:FOR y=4 TO 22 STEP 6:a(x,y,0)=2:NEXT y,x 
-1420 FOR TIME=TO 6000:NEXT TIME +1400 FOR a=3 TO 17 
-1430 : +1410 x=INT(RND*31)*2+12:y=INT(RND*19)+4:IF a(x,y,1)<>1 THEN 1410 
-1440 FOR I=TO 20 +1420 a(x,y,1)=a:NEXT:POKE paper,85 
-1450 FOR TIME=1 TO 150:NEXT TIME +1430 a$=" Floor:"​+STR$(floor)+SPACE$(8)+"​Shield:​ 000"​+SPACE$(2) 
-1460 PRINT FNtab$(I,0,STRING$(90,32)+1440 x=12:​y=25:​CALL pr(x,y,a$):POKE paper,0 
-1470 NEXT I +1450 FOR a=1 TO 15:square(a)=0:​NEXT:​RETURN 
-1480 GOSUB 2320 +1460 REM Set up 
-1490 ' +1470 DEFINT a-z:​highmem!=HIMEM:​MEMORY &​HCFFF:​e$=CHR$(27):cls$=e$+"​E"​+e$+"​H"​ 
-1500 ' +1480 DEF FNat$(x,y,a$)=e$+"​Y"​+CHR$(32+y)+CHR$(32+x)+a$ 
-1510 ' Eleccion de alienigenas +1490 DIM a(74,23,1),square(15) 
-1520 ' +1500 PRINT cls$e$"​f"​e$"​0";​:title$=" * * * C A R   P A R K * * * ":a=LEN(title$
-1530 ' +1510 b=(90-a)/2:​PRINT ​e$"​p";​FNat$(b,0,SPACE$(a));FNat$(b,1,title$);FNat$(b,2,SPACE$(a));​e$"​q 
-1540 vida=5:GOSUB 2590 +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 
-1550 d=INT(RND*4)++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 
-1560 IF d=alienigena THEN 1550 +1540 PRINT TAB(8)"Watch out for the ghost car on patrol. ​ He is easily hidden in your":PRINT TAB(8)"​exhaust fumes!"​:PRINT 
-1570 alienigena=d +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 
-1580 inv$=alienigena$(alienigena) +1560 PRINT TAB(8)"An up arrow (^takes you to the next floor, provided you have obtained a key. 
-1590 muertos=0 +1570 PRINT TAB(8)"The other squares all look the samebut their contents vary.  Some give you":​PRINT TAB(8)"​extra livesothers a limited shield against the ghost car, others more points. 
-1600 ' +1580 PRINT TAB(8)"All the points must be collected before you can get a key.":PRINT 
-1610 ' +1590 RESTORE 1750:address=&​HE000 
-1620 ' Pantalla de Juego +1600 READ code:WHILE code<​256:​POKE address,​code:​address=address+1:READ code:WEND 
-1630 ' +1610 screen=&HE000:pr=&​HE003:​UDGs=&​HD100:​pen=&​HD001:​paper=&​HD000:​double=&​HD006 
-1640 ' +1620 RESTORE 1680:FOR i=0 TO 47:READ j:POKE udgs+i,​j:​NEXT 
-1650 FOR I=20 TO 70 STEP 4:FOR J=4 TO 15 STEP 2 +1630 caru$=CHR$(0):card$=CHR$(1):carr$=CHR$(2):carl$=CHR$(3):key$=CHR$(4):p$=CHR$(5) 
-1660 PRINT FNtab$(J,I,inv$) +1640 RANDOMIZE PEEK(64504!):​b$=CHR$(187):sp$=" ​":​bleep$=CHR$(7
-1670 pantalla(J,I)=1:pantalla(J,I+1)=1 +1650 a$="p Press a key to play. ":​PRINT:PRINT TAB((90-LEN(a$)+1)/​2)e$a$e$"q":WHILE INKEY$="":​WEND 
-1680 NEXT J,I +1660 CALL screen:RETURN 
-1690 PRINT FNtab$(21,cx,canon$) +1670 REM Graphics data 
-1700 ' +1680 DATA 20,​62,​34,​62,​62,​62,​34,​28 
-1710 ' +1690 DATA 28,​34,​62,​62,​62,​34,​62,​20 
-1720 ' Movimiento del ca|on +1700 DATA 0,​0,​126,​187,​186,​187,​126,​0 
-1730 ' +1710 DATA 0,​0,​126,​221,​93,​221,​126,​0 
-1740 ' +1720 DATA 0,​224,​191,​191,​167,​229,​0,​0 
-1750 D$=INKEY$ +1730 DATA 255,​129,​189,​165,​189,​161,​161,​255 
-1760 IF muertos=78 THEN bxx=0:byy=0:GOTO 1490 +1740 REM Machine code 
-1770 IF D$=CHR$(1AND cx>18 THEN cx=cx-+1750 DATA 195,​6,​224,​195,​91,​224,​205,​41,​224,​17,​152,​44,​33,​0,182,1,104,1,62 
-1780 IF D$=CHR$(6AND cx<69 THEN cx=cx+1 +1760 DATA 32,245,​213,​62,​8,​115,​35,​114,​35,​19,​61,32,​248,​209,​235,​9,​235,​241,​61 
-1790 IF D$=CHR$(13AND disparo=0 THEN disparo=1:bx=21:by=cx++1770 DATA 32,​236,​201,​193,​205,​90,​252,​233,​0,​201,​102,​26,​111,​34,​2,​208,​10,​50,​16 
-1800 IF disparo=1 THEN GOSUB 1840 +1780 DATA 208,3,10,111,​3,​10,​103,​237,​75,​16,​208,​6,​0,​17,​19,​208,​237,​176,​42 
-1810 PRINT FNtab$(21,cx,canon$) +1790 DATA 2,​208,​205,​252,​224,​34,​4,​208,​33,​19,​208,​34,​17,​208,​201,​205,​48,​224,​205 
-1820 GOSUB 2010 +1800 DATA 41,​224,​243,​42,​17,​208,​126,​35,​34,​17,​208,​205,​234,​224,​17,​79,​225,​1,8 
-1830 GOTO 1750 +1810 DATA 0,237,176,​221,​42,​4,​208,​14,​8,​253,​33,​79,​225,​42,​0,​208,​125,​6,​8 
-1840 ' +1820 DATA 253,​203,​0,​6,​56,​13,​7,​221,​203,​8,​22,​221,​203,​0,​22,​7,​195,​164,​224 
-1850 ' +1830 DATA 203,​4,​221,​203,​8,​22,​221,​203,​0,​22,​203,​4,​221,​203,​8,​22,​221,​203,​0 
-1860 ' Disparo +1840 DATA 22,​16,​215,​253,​35,​58,​6,​208,​167,​202,​209,​224,​221,​126,​8,​221,​119,​9,​221 
-1870 ' +1850 DATA 126,​0,​221,​119,​1,​221,​35,​121,​254,​5,​194,​209,​224,​1,​200,​2,​221,​9,​79 
-1880 ' +1860 DATA 221,​35,​13,​194,​130,​224,​42,​4,​208,​1,​16,​0,​9,​34,​4,​208,​33,​16,​208 
-1890 bx=bx-+1870 DATA 53,​194,​98,​224,​251,​201,​17,​0,​184,​254,​32,​48,​3,​17,​0,​209,​111,​38,​0 
-1900 PRINT FNtab$(bxx,byy,CHR$(32)+1880 DATA 41,​41,​41,​25,​201,​92,​38,​0,​84,​203,​37,​1,​15,​225,​9,​78,​35,​70,​235 
-1910 PRINT FNtab$(bx,by,CHR$(198)+1890 DATA 41,​41,​41,​9,​201,​48,​89,​0,​92,​208,​94,​160,​97,​112,​100,​64,​103,​16,​106 
-1920 byy=by:bxx=bx +1900 DATA 224,​108,​176,​111,​128,​114,​80,​117,​32,​120,​240,​122,​192,​125,​144,​128,​96,​131,​48 
-1930 IF bx=3 THEN disparo=0:​PRINT ​FNtab$(bxx,byy,CHR$(32)+1910 DATA 134,0,​137,​208,​139,​160,​142,​112,​145,​64,​148,​16,​151,​224,​153,​176,​156,​128,​159 
-1940 IF pantalla(bx,by)=1 THEN GOSUB 1960 +1920 DATA 80,​162,​32,​165,​240,​167,​192,​170,​144,​173,​96,​176,​0,0,0,0,0,0,256
-1950 RETURN +
-1960 IF pantalla(bx,​by-1)=1 THEN ey=by-1 ELSE ey=by +
-1970 PRINT CHR$(7):​PRINT ​FNtab$(bx,ey,STRING$(2,32)):pantalla(bx,ey)=0:pantalla(bx,ey+1)=0 +
-1980 muertos=muertos+1:puntos=puntos+15:GOSUB 2610 +
-1990 disparo=0 +
-2000 RETURN +
-2010 ' +
-2020 ' +
-2030 ' Disparos alienigenas +
-2040 ' +
-2050 ' +
-2060 IF disparo1=THEN GOSUB 2140 +
-2070 IF disparo1=1 THEN RETURN +
-2080 dx=0 +
-2090 FOR I=21 TO 4 STEP -1 +
-2100 IF pantalla(I,cx+1)=1 AND dx=0 THEN dx=I:disparo1=1 +
-2110 NEXT I +
-2120 dx(1)=dx+1:dy(1)=cx+1 +
-2130 RETURN +
-2140 ' +
-2150 ' +
-2160 ' Efectos de disparos alienigenas +
-2170 ' +
-2180 ' +
-2190 I=1 +
-2200 IF per=1 THEN 2230 +
-2210 IF dy(I)<=cx THEN dy(I)=dy(I)+1:IF pantalla(dx(I),dy(I))=THEN dy(I)=dy(1)-1  +
-2220 IF dy(I)>cx+1 THEN dy(I)=dy(I)-1:IF pantalla(dx(I),dy(I))=1 THEN dy(I)=dy(I)++
-2230 IF pantalla(dx(I),dy(I))=1 THEN IF pantalla(dx(I),dy(I)-1)=THEN dy(I)=dy(I)-ELSE dy(I)=dy(I)+1 +
-2240 PRINT FNtab$(dxx(I),dyy(I),CHR$(32)+
-2250 PRINT FNtab$(dx(I),​dy(I),​CHR$(199)+
-2260 dxx(I)=dx(I):dyy(I)=dy(I):dx(I)=dx(I)+1 +
-2270 IF dy(I)=cx+1 AND dx(I)=22 THEN vida=vida-1:​FOR ITY=1 TO 15:​PRINT ​FNtab$(0,0,CHR$(7)):PRINT FNtab$(0,27,CLARO$):PRINT FNtab$(0,54,OSCURO$):NEXT ITY:GOSUB 2600 +
-2280 IF dx(I)=22 THEN dx(I)=0:dy(I)=0:disparo1=0 +
-2290 IF per=1 THEN per=0 ELSE per=1 +
-2300 IF vida=0 THEN GOTO 2640 +
-2310 RETURN +
-2320 ' +
-2330 ' +
-2340 ' ​Marcadores +
-2350 +
-2360 ' +
-2370 GOTO 2430 +
-2380 FOR ppy=90 TO 0 STEP -1 +
-2390 PRINT FNtab$(ppx,ppy,os$) +
-2400 NEXT ppy +
-2410 RETURN +
-2420 : +
-2430 ppx=23:​os$=CHR$(202):GOSUB 2380 +
-2440 ppx=25:os$=CHR$(200):GOSUB 2380 +
-2450 ppx=27:​os$=CHR$(201):GOSUB 2380 +
-2460 : +
-2470 FOR alc=1 TO 4 +
-2480 FOR ppy=80 TO alc*3 STEP -1 +
-2490 PRINT FNtab$(26,​ppy,​alienigena$(alc)+CHR$(32)+
-2500 NEXT ppy +
-2510 NEXT alc +
-2520 GOTO 2540 +
-2530 PRINT FNtab$(26,kl,CHR$(149)):RETURN +
-2540 kl=0:GOSUB 2530 +
-2550 kl=20:GOSUB 2530 +
-2560 kl=45:GOSUB 2530 +
-2570 kl=90:GOSUB 2530 +
-2580 PRINT FNtab$(24,​1,"​RETURN ​Disparar."​+CHR$(149)+CHR$(27)+CHR$(12)+" ​Derecha."​+CHR$(149)+CHR$(27)+CHR$(11)+" ​Izquierda."+CHR$(149)+
-2590 : +
-2600 PRINT FNtab$(26,22,"Vidas : ");:​PRINT ​USING "###";​vida +
-2610 PRINT FNtab$(26,47,"Puntuacion : ");:PRINT USING"#############​";puntos +
-2620 +
-2630 RETURN +
-2640 ' +
-2650 ' +
-2660 ' Juago Finalizado +
-2670 ' +
-2680 ' +
-2690 FOR TIME=1 TO 2800:NEXT TIME +
-2700 PRINT VIDEON$ +
-2710 FOR I=90 TO STEP -+
-2720 PRINT FNtab$(26,I,CHR$(32)) +
-2730 NEXT I +
-2735 frase$=" ​  ​PUNTUACION FINAL :"​+STR$(puntos)+"​."​ +
-2740 PRINT FNtab$(24,47,frase$+STRING$(43-LEN(frase$),32)) +
-2750 GOTO 2800 +
-2760 FOR I=88-LEN(frase$) TO STEP -+
-2770 PRINT FNtab$(26,I,frase$) +
-2780 NEXT I +
-2790 RETURN +
-2800 frase$="​J U E G O T E R M I N A D O ":​GOSUB 2760 +
-2810 FOR TIME=TO 3000:NEXT TIME +
-2820 frase$=CHR$(32):GOSUB 2760 +
-2830 frase$="​]DESEAS JUGAR OTRA VEZ (S/N)? ":​GOSUB 2760 +
-2840 RES$=INKEY$:​RES$=UPPER$(RES$) +
-2850 IF RES$="​N"​ THEN FOR I=TO 30:​PRINT:​NEXT I:PRINT CURON$;​VIDEOFF$:​NEW +
-2860 IF RES$="​S"​ THEN GOTO 2880 +
-2870 GOTO 2840 +
-2880 bxx=0:byy=0:puntos=0 +
-2890 disparo=0 +
-2900 PRINT BORRA$;​VIDEOFF$:​GOTO 1480+
 </​file>​ </​file>​
  
 ===== Controles ===== ===== Controles =====
  
-        ​→ = DERECHA +        ​O = IZQUIERDA 
-        ​← IZQUIERDA +        P = DERECHA 
-   RETURN ​DISPARO+        ​ARRIBA 
 +        X = ABAJO 
 +        Q ABANDONAR
  
 ===== Carga del programa ===== ===== Carga del programa =====
Línea 331: Línea 236:
   1.- Introducir el disco CP/M por la cara 2   1.- Introducir el disco CP/M por la cara 2
   2.- Escribir BASIC y esperar a que cargue   2.- Escribir BASIC y esperar a que cargue
-  3.- Retirar el disco CP/M e introducir el disco que contiene el juego Tenemos visita +  3.- Retirar el disco CP/M e introducir el disco que contiene el juego Car Park 
-  4.- Teclear run "Marciano" y pulsar la tecla "​ENTER"​+  4.- Teclear run "Car" y pulsar la tecla "​ENTER"​
  
 ===== Extras ===== ===== Extras =====
Línea 338: Línea 243:
 ===== Descarga ===== ===== Descarga =====
  
-  * {{:otros:Tenemos visita ​(Basic).zip|Tenemos visita ​}}(juego en formato dsk, comprimido con zip)+  * {{:otros:Car Park (Basic).zip|Car Park }}(juego en formato dsk, comprimido con zip)
   ​   ​
 ===== Enlaces ===== ===== Enlaces =====
es/car_park.txt · Última modificación: 2017/01/27 12:37 por jevicac