100 REM ****************************** 101 REM * * 102 REM * S E R P I E N T E * 104 REM * * 106 REM * Copyright 1986-2007 * 108 REM * Damaso D. Estévez * 110 REM * * 112 REM ****************************** 114: 120 CLEAR 255:REM -- A. cadenas -- 122 GOSUB 200:REM -- Rut. inst. -- 124 GOSUB 250:REM -- Variables1 -- 126 P=0 :REM -- Puntuación -- 127 M(0)=3 :REM -- Num. vidas -- 128 GOSUB 280:REM -- Pantalla -- 130 GOSUB 320:REM -- Variables2 -- 132 GOSUB 350:REM -- Desarrollo -- 134 IF M(0)<>0 THEN GOTO 128 136 IF M(0)=0 THEN GOTO 126 138 END 140 : 180 POKE 14342,40 182 : 184 : 200 REM -------- S/R NUMERO 1 --------- 202 PRINT CHR$(11) 204 FOR K=1 TO 5:PRINT:NEXT K 206 PRINT " Instrucciones:":PRINT 208 PRINT " Su mision consiste en desplazar una" 210 PRINT " ";CHR$(34);"serpiente";CHR$(34);" por la pantalla con las" 212 PRINT " teclas '.' (gira 90 grados hacia la" 214 PRINT " derecha) y 'z' (gira 90 grados hacia" 216 PRINT " la izquierda) evitando chocar contra" 218 PRINT " las paredes, contra si misma o con" 220 PRINT " los obstaculos que aparecen poco a" 222 PRINT " poco, y devorar TODAS las cifras que" 224 PRINT " aparezcan en pantalla a lo largo del" 226 PRINT " juego... !ah!, y con rapidez.":PRESET(3,54) 228 K$=INKEY$:IF K$="" THEN 228 230 RETURN 232 : 234 : 250 REM -------- S/R NUMERO 2 --------- 252 DIM M(4): DIM N(760) 254 U=12448:C=13472:RC=15 256 M(1)=+40:M(2)=+01 258 M(3)=-40:M(4)=-01:RETURN 260 : 262 : 280 REM -------- S/R NUMERO 3 --------- 282 PRINT CHR$(11);:PRESET(3,0) 284 FOR K=C-120TOC-40:POKE K,118:NEXT 286 FOR K=C-40TOC+839:POKE K,007:NEXT 288 PRINT "PUNTOS LONG MAX. ":PRESET(3,4) 290 FOR K=V-40 TO V-1 292 POKE K,150:POKE K+840,150:NEXT K 293 FOR K=V TO V+800 STEP 40 296 POKE K,150:POKE K+39,150:NEXT K 298 : 300 : 320 REM -------- S/R NUMERO 4 --------- 322 L=5:F=12826:I=12829:S=1:CV=100 324 FOR K=F TO I:POKE K,111:NEXT K 326 CP=V+INT(RND(1)*760) 328 IF PEEK(CP)<>32 THEN GOTO 326 330 POKE 13393,102:RETURN 332 : 334 : 350 REM -------- S/R NUMERO 5 --------- 354 FOR K=1 TO L:N(K)=F+K-1:NEXT K 356 PH=L+1:PT=01:F=0 358 GOSUB 422:REM -- Informacion -- 360 K$=INKEY$:IF K$="" THEN GOTO 366 362 IFK$="z" THENS=S+1:IFS=5 THEN S=1 364 IFK$="." THENS=S-1:IFS=0 THEN S=4 366 I=I+M(S):K=PEEK(I)-48 368 IF PEEK(I)=150 THEN GOTO 450 370 IF PEEK(I)=111 THEN GOTO 450 372 IF PEEK(I)=032 THEN GOTO 376 374 F=F+K:P=P+K:CV=0:L=L+K 376 N(PH)=I:PH=PH+1 378 POKE I,111:POKE I+1024,7 380 IF F<>0 THEN F=F-1:GOTO 384 382 POKE N(PT),32:PT=PT+1 384 IF PT>760 THEN PT=1 386 IF PH>760 THEN PH=1 388 IF RND(1)<0.010 THEN CV=9 389 IF CV=0 THEN GOTO 394 390 IF CV<10 THEN SOUND(25,15):SOUND(12,16):SOUND(30,12) 392 IF CV<10 THEN CV=0:IF PEEK(CP)<>111 THEN POKE CP,150:POKE CP+1024,7 394 IF CV<>0 THEN CV=CV-1:POKE CP,INT(CV/10)+48:POKE CP+1024,12:GOTO 400 396 IF RND(1)<0.550 THEN GOTO 400 398 CV=100:CP=V+INT(RND(1)*760):IF PEEK(CP)<>32 THEN 398 400 SOUND(50,6):GOTO 358 402 : 404 : 420 REM ------- S/R NUMERO 6 -------- 422 POKE 14337,41:POKE 14338,48 424 K$=" PUNTOS "+RIGHT$(" "+STR$(P),4)+" LONG " 426 K$=K$+RIGHT$(" "+STR$(L),4)+" RECORD "+RIGHT$(" "+STR$(RC),4) 428 PRINT K$;:PRESET(3,4):RETURN 430 : 432 : 450 REM ------- S/R NUMERO 7 -------- 452 M(0)=M(0)-1 454 FOR K=0 TO 12:SOUND(20*K,10) 456 POKE I,208:POKE I+1024,23 458 POKE I,209:POKE I+1024,71:NEXT K 460 IF M(0)>0 THEN RETURN 462 FOR K=1TO3000:NEXTK: PRINTCHR$(11) 464 FOR K=1 TO 11:PRINT:NEXT K 466 PRINT TAB(12);"FIN DE JUEGO" 468 K$=INKEY$:PRESET(3,41) 470 IF P>RC THEN RC=P 472 K$=INKEY$:IF K$="" THEN GOTO 472 474 RETURN 476 : 478 : 500 REM >> Mem. ocupado aprox. 3302 <<