Tetris C64
Basic
Actualizado el 8 de Febrero del 2020 por Adelino (27 códigos) (Publicado el 25 de Noviembre del 2019)
10.227 visualizaciones desde el 25 de Noviembre del 2019
Juego de tipo tetris para Commodore 64.


100 POKE 53280,0: POKE 53281,0
110 PRINT CHR$(0) CHR$(147)
120 DIM A(2,6,3,3),C(6,3,3)
130 DIM E(255),H(249),Q(249)
140 DIM B(10),F(24),I(24),Y(24)
150 C0=49152: C1=49408: C2=49664
160 C3=49920: C4=50176
170 B(10)=2: I(0)=9: I(24)=9
180 G(0)=1: G(1)=2: G(2)=3
190 X(0)=10: X(1)=1: X(2)=-1
200 E(29)=1: E(157)=2: E(145)=3
210 Q=55280: P=INT(RND(0)*7)
220 FOR A=2 TO 9: B(A)=A: NEXT
230 FOR Y=0 TO 24
240 F(Y)=N: N=N+10: Q=Q+30
250 POKE Q+10,11: POKE Q-54262,207
260 FOR X=0 TO 9
270 POKE Q,0: POKE C0+C,2
280 IF X<=I(Y) THEN POKE Q,11: POKE C0+C,10
290 H(C)=Y: Q(C)=Q: A=INT(Q/256)
300 POKE C3+C,A: POKE C4+C,Q-256*A
310 POKE Q-54272,207
320 C=C+1: Q=Q+1
330 NEXT X,Y
340 FOR G=0 TO 3: C=G<1
350 FOR A=0 TO 6: N=0
360 FOR Y=-C TO 3+C
370 FOR X=0 TO 3
380 IF C THEN READ Q
390 IF G THEN Q=A(G-1,A,Y,X)
400 IF Q THEN C(A,G,N)=X+F(Y): N=N+1
410 IF Q>G THEN A(G,A,X,3-Y)=3
420 NEXT X,Y,A,G
430 REM ***** Inicio *****
440 FOR N=0 TO 3
450 C=4+C(P,0,N)
460 IF PEEK(C0+C)>2 GOTO 460
470 POKE Q(C),P+1: POKE Q(C)+172,0
480 POKE C1+N,C: POKE C0+C,1
490 NEXT
500 A=P: C=4: G=0
510 P=INT(RND(0)*7)
520 POKE 253,A+1
530 FOR N=0 TO 3
540 Q=Q(C(P,0,N))+176
550 POKE Q,P+1: POKE Q-54272,207
560 NEXT
570 REM ***** Rutina *****
580 GET E$
590 IF E$<>"" THEN N=ASC(E$): GOTO 580
600 X=E(N): C=C+X(X): N=3
610 Y=G: IF X>2 THEN G=G(Y)
620 POKE C2+N,C+C(A,G,N)
630 IF PEEK(C0+PEEK(C2+N))>2 GOTO 780
640 IF N THEN N=N-1: GOTO 620
650 FOR N=0 TO 3: Q=PEEK(C2+N)
660 IF PEEK(C0+Q)<>2 GOTO 680
670 POKE 256*PEEK(C3+Q)+PEEK(C4+Q),PEEK(253)
680 POKE C0+Q,PEEK(C0+Q)-1
690 NEXT
700 FOR N=0 TO 3: Q=PEEK(C1+N)
710 POKE C0+Q,PEEK(C0+Q)+1
720 IF PEEK(C0+Q)<>2 GOTO 740
730 POKE 256*PEEK(C3+Q)+PEEK(C4+Q),0
740 POKE C1+N,PEEK(C2+N)
750 NEXT
760 GOTO 580
770 REM ***** Lineas *****
780 IF X THEN C=C-X(X): G=Y: GOTO 580
790 FOR N=0 TO 3
800 POKE C0+PEEK(C1+N),A+3
810 Y=H(PEEK(C1+N))
820 Y(Y)=Y(Y)+1
830 IF Y(Y)<9 GOTO 900
840 FOR C=F(Y)+1 TO F(Y+1)-1
850 POKE C0+C,B(PEEK(C0+C-10))
860 POKE Q(C),PEEK(C0+C)-2
870 NEXT
880 Y(Y)=Y(Y-1): Y=Y-1
890 IF Y(Y) GOTO 840
900 NEXT
910 GOTO 440
920 REM ***** Datos *****
930 DATA 1,1,1,1,0,0,0,0
940 DATA 0,1,0,0,0,1,1,1
950 DATA 0,0,1,0,1,1,1,0
960 DATA 0,1,1,0,0,0,1,1
970 DATA 0,1,1,0,1,1,0,0
980 DATA 0,1,0,0,1,1,1,0
990 DATA 0,1,1,0,0,1,1,0
No hay comentarios