|
| 1 | +1 REM Compilar con --sinclair |
| 2 | +10 REM COMECOQUITOS Luis Amado y MICROHOBBY SEMANAL |
| 3 | +11 DIM max, punt as UINTEGER: REM Needed to avoid overflow, since ZX BASIC will try byte |
| 4 | +15 BORDER 1: PAPER 1: INK 7: CLS : PRINT AT 10,10; FLASH 1;"PARE LA CINTA": PAUSE 200 |
| 5 | +20 GO SUB 680 |
| 6 | +30 LET max=0 |
| 7 | +40 LET x2=18: LET x3=4: LET y3=18: LET y2=15: LET px=10: LET py=15: LET v$="\G": LET j$="\B" |
| 8 | +50 FUNCTION p$(a): RETURN ("000"+ STR$ a)( LEN STR$ a TO ): END FUNCTION : REM Needed because DEF FN is not allowed |
| 9 | +60 BORDER 4: PAPER 6: INK 2: CLS |
| 10 | +70 LET punt=0 |
| 11 | +80 DIM l$(19) |
| 12 | +90 LET l$(1)="\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H" |
| 13 | +100 LET l$(2)="\H\F\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\I\F\H" |
| 14 | +110 LET l$(3)="\H\I\H\H\H\I\H\I\I\H\H\H\I\H\H\H\I\H\H\H\I\I\H\I\H\H\H\I\I\H" |
| 15 | +120 LET l$(4)="\H\I\I\H\I\I\H\H\H\F\H\I\I\F\I\F\I\I\H\F\H\H\H\I\I\H\I\I\H\H" |
| 16 | +130 LET l$(5)="\H\I\H\H\I\H\H\F\H\I\H\H\H\H\H\H\H\H\H\I\H\F\H\H\I\H\H\I\H\H" |
| 17 | +140 LET l$(6)="\H\I\I\H\I\I\I\I\H\I\I\I\I\I\I\I\I\I\I\I\H\I\I\I\I\H\I\I\H\H" |
| 18 | +150 LET l$(7)="\H\I\H\H\H\H\I\H\H\I\H\I\H\H\H\H\H\I\H\I\H\H\I\H\H\H\H\I\I\H" |
| 19 | +160 LET l$(8)="\H\I\I\I\I\I\I\I\I\I\H\I\H\I\I\I\H\I\H\I\I\I\I\I\I\I\I\I\I\H" |
| 20 | +170 LET l$(9)="\H\I\H\H\H\H\H\H\H\H\H\I\H\H\I\H\H\I\H\H\H\H\H\H\H\H\H\H\I\H" |
| 21 | +180 LET l$(10)="\H\I\I\I\I\I\I\I\I\I\I\I\H\I\I\I\H\I\I\I\I\I\I\I\I\I\I\I\I\H" |
| 22 | +190 LET l$(11)="\H\I\H\H\H\H\H\H\H\H\H\I\H\I\H\I\H\I\H\H\H\H\H\H\H\H\H\H\I\H" |
| 23 | +200 LET l$(12)="\H\I\H\I\I\I\I\I\I\I\H\I\I\I\H\I\I\I\H\I\I\I\I\I\I\I\F\H\I\H" |
| 24 | +210 LET l$(13)="\H\I\H\H\I\H\I\H\F\H\I\H\H\H\H\H\H\H\I\I\H\I\H\I\H\I\H\H\I\H" |
| 25 | +220 LET l$(14)="\H\I\H\I\I\I\I\H\H\I\I\I\I\I\I\I\I\I\I\H\I\I\I\I\I\I\I\H\I\H" |
| 26 | +230 LET l$(15)="\H\I\I\I\H\H\H\I\I\I\H\H\H\H\H\H\H\H\H\I\I\I\H\H\H\H\I\I\I\H" |
| 27 | +240 LET l$(16)="\H\I\H\I\I\I\I\I\H\H\I\I\H\F\I\F\H\I\I\I\H\I\I\I\I\I\I\H\I\H" |
| 28 | +250 LET l$(17)="\H\I\H\H\H\H\H\H\H\H\I\H\H\H\I\H\H\H\I\H\H\H\H\H\H\H\H\H\I\H" |
| 29 | +260 LET l$(18)=l$(2) |
| 30 | +270 LET l$(19)=l$(1) |
| 31 | +280 PRINT : FOR f=1 TO 19: INK 1: PAPER 6: PRINT TAB 1;l$(f): NEXT f |
| 32 | +290 FOR f=0 TO 21: PRINT INK 0; AT f,0;"\::"; AT f,31;"\::": NEXT f |
| 33 | +300 PRINT AT 20,0; PAPER 0; INK 7; BRIGHT 1;" C O M E C O Q U I T O S " |
| 34 | +310 PRINT AT 21,0; INK 2; PAPER 6;"PUNTOS:0000 RECORD:0000" |
| 35 | +320 PRINT AT 0,0; INK 5; PAPER 0;" LAR SOFTWARE LALIN-PONTEVEDRA " |
| 36 | +330 LET l$(px)(py)=" " |
| 37 | +340 IF punt<1745 THEN GO TO 400 |
| 38 | +350 IF punt=1745 THEN PRINT AT 2,13; INK 4; PAPER 1; FLASH 1; BRIGHT 1;"BRAVO"; AT 8,14;"HAS"; AT 10,6;"LOGRADO"; AT 10,14;"UNA"; AT 10,18;"VICTORIA" |
| 39 | +360 PRINT AT 18,4; INK 7; PAPER 0; FLASH 1;"QUIERES CONTINUAR? (s/n)" |
| 40 | +370 IF INKEY$="s" THEN GO TO 60 |
| 41 | +380 IF INKEY$="n" THEN GO TO 9999 |
| 42 | +390 IF INKEY$<>"s" OR INKEY$<>"n" THEN GO TO 370 |
| 43 | +400 IF INKEY$="" THEN GO TO 450 |
| 44 | +410 IF INKEY$="5" THEN LET j$="\C" |
| 45 | +420 IF INKEY$="6" THEN LET j$="\D" |
| 46 | +430 IF INKEY$="7" THEN LET j$="\A" |
| 47 | +440 IF INKEY$="8" THEN LET j$="\B" |
| 48 | +450 PRINT AT px,py;" " |
| 49 | +460 IF j$="\A" AND l$(px-1)(py) <>"\H" THEN LET px=px-1 |
| 50 | +470 IF j$="\B" AND l$(px)(py+1) <>"\H" THEN LET py=py+1 |
| 51 | +480 IF j$="\D" AND l$(px+1)(py) <>"\H" THEN LET px=px+1 |
| 52 | +490 IF j$="\C" AND l$(px)(py-1) <>"\H" THEN LET py=py-1 |
| 53 | +500 PRINT AT px,py; INK 3;v$ |
| 54 | +510 IF l$(px)(py)="\I" THEN LET punt=punt+5: BEEP .01,12 |
| 55 | +520 IF l$(px)(py)="\F" THEN LET punt=punt+30: BEEP .02,16 |
| 56 | +530 IF max<punt THEN LET max=punt |
| 57 | +540 PRINT AT 21,7; p$(punt); AT 21,28; p$(max): BEEP .001,50 |
| 58 | +550 PRINT AT x2,y2;l$(x2)(y2): IF INT ( RND*2)+(x2>px) AND l$(x2-1)(y2) <>"\H" THEN LET x2=x2-1 |
| 59 | +560 IF INT ( RND*2)+(x2<px) AND l$(x2+1)(y2) <>"\H" THEN LET x2=x2+1 |
| 60 | +570 IF INT ( RND*2)+(y2>py) AND l$(x2)(y2-1) <>"\H" THEN LET y2=y2-1 |
| 61 | +580 IF INT ( RND*2)+(y2<py) AND l$(x2)(y2+1) <>"\H" THEN LET y2=y2+1 |
| 62 | +590 PRINT AT x2,y2; INK 2;"\E" |
| 63 | +600 PRINT AT px,py; INK 3;j$ |
| 64 | +610 IF (x2=px AND y2=py) OR (x3=px AND y3=py) THEN FOR g=1 TO 10: FOR f=0 TO 7: PRINT INK f; AT px,py;j$: NEXT f: NEXT g: PRINT AT px,py; INK 6;j$: GO TO 830 |
| 65 | +620 PRINT AT x3,y3;l$(x3)(y3): IF INT ( RND*2)+(x3>px) AND l$(x3-1)(y3) <>"\H" THEN LET x3=x3-1 |
| 66 | +630 IF INT ( RND*2)+(x3<px) AND l$(x3+1)(y3) <>"\H" THEN LET x3=x3+1 |
| 67 | +640 IF INT ( RND*2)+(y3>py) AND l$(x3)(y3-1) <>"\H" THEN LET y3=y3-1 |
| 68 | +650 IF INT ( RND*2)+(y3<py) AND l$(x3)(y3+1) <>"\H" THEN LET y3=y3+1 |
| 69 | +660 PRINT AT x3,y3; INK 2;"\E" |
| 70 | +670 GO TO 330 |
| 71 | +680 DATA 66,129,129,195,231,255,126,60 |
| 72 | +690 DATA 62,121,240,224,224,240,121,62 |
| 73 | +700 DATA 124,158,15,7,7,15,158,124 |
| 74 | +710 DATA 60,126,255,231,195,129,129,66 |
| 75 | +720 DATA 56,124,214,214,254,254,170,170 |
| 76 | +730 DATA 24,82,255,255,255,255,126,36 |
| 77 | +740 DATA 0,60,126,126,126,126,60,0 |
| 78 | +750 DATA 170,85,170,85,170,85,170,85 |
| 79 | +760 DATA 0,0,0,24,24,0,0,0 |
| 80 | +770 RESTORE 680 |
| 81 | +780 FOR i=1 TO 9: FOR n=0 TO 7 |
| 82 | +790 READ a |
| 83 | +800 POKE USR CHR$(i+143)+n,a |
| 84 | +810 NEXT n: NEXT i |
| 85 | +820 RETURN |
| 86 | +830 PRINT AT 2,11; INK 7; PAPER 1; FLASH 1;"SE ACABO" |
| 87 | +840 PRINT AT 18,4; INK 7; PAPER 0; FLASH 1;"QUIERES CONTINUAR? (S/N)" |
| 88 | +850 IF INKEY$="s" THEN GO TO 40 |
| 89 | +860 IF INKEY$="n" THEN GO TO 9999 |
| 90 | +870 IF INKEY$<>"n" OR INKEY$<>"s" THEN GO TO 850 |
| 91 | +9999 REM |
0 commit comments