Tetris C64
Basic
Actualizado el 8 de Febrero del 2020 por Adelino (27 códigos) (Publicado el 25 de Noviembre del 2019)
10.282 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),I(6,3)
130 DIM E(255),H(249),Q(249)
140 DIM C(111),F(25),Y(24)
150 C0=49152: C1=49408: C2=49664
160 C3=49920: C4=50176
170 X(0)=10: X(1)=1: X(2)=-1
180 E(29)=1: E(157)=2: E(145)=3
190 FOR X=828 TO 899
200 READ Y: POKE X,Y: NEXT
210 FOR A=1 TO 8: B(A)=A: NEXT: B(9)=1
220 FOR X=0 TO 2: G(X,3)=X+1
230 FOR G=0 TO 3: G(G,X)=G: NEXT G,X
240 Q=55280
250 FOR Y=0 TO 24: A=-1: Q=Q+30
260 F(Y+1)=F(Y)+10: G=Y/24=INT(Y/24)
270 POKE Q+10,11: POKE Q-54262,207
280 FOR X=0 TO 9
290 P=INT(Q/256): H(C)=Y: Q(C)=Q
300 POKE C4+C,P: POKE C3+C,Q-256*P
310 POKE Q,-11*A: POKE C0+C,1-8*A
320 POKE Q-54272,207
330 A=G: C=C+1: Q=Q+1
340 NEXT X,Y
350 FOR G=0 TO 3: C=G<1
360 FOR A=0 TO 6: I(A,G)=N
370 FOR Y=-C TO 3+C
380 FOR X=0 TO 3
390 IF C THEN READ Q
400 IF G THEN Q=A(G-1,A,Y,X)
410 IF Q THEN C(N)=X+F(Y): N=N+1
420 IF Q>G THEN A(G,A,X,3-Y)=3
430 NEXT X,Y,A,G
440 REM ***** Inicio *****
450 P=INT(RND(0)*7)
460 FOR N=0 TO 3
470 C=4+C(I(P,0)+N)
480 IF PEEK(C0+C)>1 GOTO 470
490 POKE Q(C),P+1: POKE Q(C)+172,0
500 POKE C1+N,C: POKE C0+C,0
510 NEXT
520 G=0: A=P: POKE 251,A+1
530 C=4: P=INT(RND(0)*7)
540 FOR N=0 TO 3
550 Q=Q(C(I(P,0)+N))+176
560 POKE Q,P+1: POKE Q-54272,207
570 NEXT
580 REM ***** Rutina *****
590 T=TI
600 E$=" ": IF TI-T<6 THEN GET E$
610 IF E$="" GOTO 600
620 X=E(ASC(E$)): C=C+X(X)
630 Y=I(A,G(G,X)): N=3
640 Q=C+C(Y+N): POKE C2+N,Q
650 IF PEEK(C0+Q)>1 GOTO 710
660 IF N THEN N=N-1: GOTO 640
670 SYS 828
680 G=G(G,X)
690 GOTO 590
700 REM ***** Lineas *****
710 IF X THEN C=C-X(X): GOTO 600
720 FOR N=0 TO 3
730 POKE C0+PEEK(C1+N),A+2
740 Y=H(PEEK(C1+N)): Y(Y)=Y(Y)+1
750 IF Y(Y)<9 GOTO 820
760 FOR C=F(Y)+1 TO F(Y+1)-1
770 Q=C0+C: X=B(PEEK(Q-10))
780 POKE Q,X: POKE Q(C),X-1
790 NEXT
800 Y(Y)=Y(Y-1): Y=Y-1
810 IF Y(Y) GOTO 760
820 NEXT
830 GOTO 460
900 REM ***** Ensamblador *****
910 DATA 160,4,136,132,252,190,0,194
920 DATA 222,0,192,208,16,189,0,195
930 DATA 133,253,189,0,196,133,254,165
940 DATA 251,160,0,145,253,164,252,208
950 DATA 225,160,4,136,132,252,190,0
960 DATA 193,185,0,194,153,0,193,254
970 DATA 0,192,240,15,189,0,195,133
980 DATA 253,189,0,196,133,254,169,0
990 DATA 168,145,253,164,252,208,220,96
1000 REM ***** Datos *****
1010 DATA 1,1,1,1,0,0,0,0
1020 DATA 0,1,0,0,0,1,1,1
1030 DATA 0,0,1,0,1,1,1,0
1040 DATA 0,1,1,0,0,0,1,1
1050 DATA 0,1,1,0,1,1,0,0
1060 DATA 0,1,0,0,1,1,1,0
1070 DATA 0,1,1,0,0,1,1,0
No hay comentarios