home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-scene-files / Coverdisks / CS / CSCD039A.d64 / petris (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  1020 b   |  20 lines

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