1 POKE53281,14:REM PETRIS (C)2002 CURTIS F KAYLOR 2 T$="                " 3 DIMT$(15):FORI=0TO15:T$(I)=MID$(T$,4*I+1,4):NEXT:DIMB%(6,3,3):DIMP(23) 4 B$="DDDD@O@@DDDD@O@@@FDD@GA@@AAC@DG@@FBB@AG@@DDF@GD@@BFB@BG@@BCB@GB@@ACB@FC@" 5 B$=B$+"@ACB@FC@@DFB@CF@@DFB@CF@@FF@@FF@@FF@@FF@":FORI=0TO6:FORJ=0TO3:FORK=0TO3 6 Z=Z+1:B%(I,J,K)=ASC(MID$(B$,Z))AND15:NEXT:NEXT:NEXT:FORI=0TO19:P(I)=4097:NEXT:P(I)=8191 7 PRINT"[147]":FORI=0TO20:P=P(I):PRINT""T$(P/4096)T$(P/256AND15)T$(P/16AND15)T$(PAND15):NEXT 8 PRINT "[145]PETRIS";S 9 X=5:Y=0:B=7*RND(0):C=0:D=2:PRINT"";:R=1 10 IFRTHEND$="":FORI=0TO3:D$=D$+T$(B%(B,C,I))+"[157][157][157][157]":NEXT:D$=D$+"[145][145][145][145]" 11 PRINT CHR$(93*ABS(M)+64*M)"";D$;:IF M+R THEN M=0:R=0:GOTO14 12 GET K$:M=(K$="")-(K$=""):R=(K$=" "):IFMTHENX=X+M:GOSUB16:IFZTHENX=X-M:M=0 13 IFRTHENC=C-RAND3:GOSUB16:IFZTHENC=C+RAND3:R=0 14 IF M+R=0 THEN Y=Y+1:GOSUB16:IF Z THEN Y=Y-1:ONSGN(Y)GOTO17:END 15 PRINT"[146]"D$;CHR$(-17*(M+R=0));:GOTO10 16 Z=0:T=2^X:FORI=0TO3:Z=Z+(P(Y+I)ANDB%(B,C,I)*T):NEXT:RETURN 17 A=0:FORI=0TO3:P(Y+I)=P(Y+I)ORB%(B,C,I)*T:IFP(Y+I)=8191ANDY+I<20THENGOSUB19 18 NEXT:ONDGOTO7,9 19 FORZ=Y+ITO1STEP-1:P(Z)=P(Z-1):NEXT:P(0)=4097:D=1:A=A+10:S=S+A:RETURN