;"M@(U*]*PARRAYROTATIONTxINIT-ROTATIONSUBR,<0A@,8,< `1N+,8 `@1N+ ./` g-, -, g( `.(.4. QC+ XC0 `.. Np "p B`+/ `@0.. Nw "w B`+ "//0*u,x0SHAPESxU)!INIT-SHAPES    zPg$f .QK    zPg$f .XK(!!    zP$f .QK    zP'$f .XK    zPg$f .QK(!!    zP'$f .XK    zP$f .QK "(,xhU*U.UANDSTATUSFEATURECOMPLRSPECIAL+GRID-X+ xORBOUNDPU+UjuQUOTESETQ  x+GRID-Y+ x  x+NUM-COLUMNS+w+Uju x  x+NUM-ROWS+ x  x*CURRENT-SHAPE* x*NEXT-SHAPE*u:].W x*X* x*Y* x*SCORE* x*HEAP* xU@bINIT-HEAP,<,<@@,88 `Ab3O+- ` "-, -, 1 B `  -, -, B0 `.. Np "p B`+#/,88@ `3O +6  `-, -,1  B `.. Nw "w B`+. "@D]//,x(!HIBOU;TETRIS 185_1Q LSUBR [` @. Z` H.@0,< -, $ "p-,/0*/,x09RANDOMMAKE-RANDOM-SHAPE ,D,8 B,8G",<(.4.F[+FZ $t+HAHIBOU;TETRIS 185_2Z` 8/.-,0  $[`-,/,xPHU( CURSORPOSDRAW-SHAPEPRINT-NEXT-SHAPE ,Q,8,8T .$ ,<`a! *p,8",</`U $  P,"]x/f(hhLHIBOU;TETRIS 185_3Z`@0 8/.-, $[`-,/0.U*!,xpVSQUIDMAKUNBOUNDCLEAR-SHAPEGET-NEW-CURRENT-SHAPE * J! ( H[ZZ1B+a $b2 ,+b B  J A:P B ,xZMEMBERMOVE-SHAPE,8 ,8,8 "`,8,87@`+u[` g~[ @. g~Z H.,< -, $ "p-,/-,XCgZ` Bg D`+i/ g/,8,87@g+z [g@ 4B6@g+ ` J g~.-,1@b B g.-, B+ " `]+Zg Dg+w/,x fHIBOU;TETRIS 185_5 [` 8/Z` @/(.(. 4. [+ Z[ 8.Z @ .,< -, $ "p-,A:!//,x(ROTATE-SHAPE $ ,,8,87@g+ [g4B6@g+ ` B+ "+ZgAA: Dg+/,x0DRAW-TILE,8 ,(,8  Z @.,< *p,8  [ @.(,< (p,8",<`/`* "/,xwt8@kP,8 $/+`+HIBOU;TETRIS 185_6 ,6,8  Zg @.,< *p,8  [g @.(,< (p,8",<`/`9 "/,x@-@kP,8 $/+9REMOVE-DUPLICATES,8B5B> `-,+DZ[4BADZ`+D[`,8Zg,X-,0*U/,xH;CDRPNPUTScore: ~aw*]*U p  xDEFPROP+INTERNAL-STRING-MARKER xFORMATMAX*DELQREMOVE-WHOLE-ROWS!F $ ,,8,8,<",<6@`+_,8 `2og+W ,S,8. ,< *p,8 .$ ,< (p ,8",</` `.. Np "p B`+K/,8[`Z8 8@ 03O+^2og+\[`Z` B`+X $ "/+,8,8[gZ8 8@B 2O+ `2O + ..-, @" B ,i,8,8,8",< ,m,8H,8,8,8",< ,p,8,8g~[g~ ,8",<! Bg~,8,<[`Z8 83O+[g~ @2.+z.. Np@ *p "(-,[`XB+}2N+} @ [`! BZ` B`+r/`/Zg,8,<7@`+ [` 8[g~ @2.+.. Np *p "(-,QC`Z` B`+ "//+ "+[g @2N+ `.. Nw "w B`Zg Bg+`/0 `0Z` B`+I//,x""".D1 EHIBOU;TETRIS 185_7 ,X-, BjU*U,x(LISTEN*READCH,.`' U@bREFRESHREDRAW-SHAPE,<,<  $!E "5B( $" , 1" 5N' "+(4B? ,#  Nw *w,8,8 g5N.  AD+?# B`0B$+2 $ "+< Q 0B$+5 $ "+<0B%+8 $!D( "5B6+<0B%+:+<0B& @`+<& ,# Np "p Bg++/0*w/,xpCDRAW-PERIMETER p ( (xp@ 3( x ,C,8,8P",<(,8[` 0Z8 83O+I[`Z` B`+D/ ,L,8,8Q,8Q",< ,PD@3",8,8R,8R,8",<  '"`a(h@,< ,[,8  /.,< *p,8 .$ /.,< (p ,8",</`q,8  .D2O`+f ,d,8,8g .$ /.,<`a *p,8",</`s "+o ,k,8,8g .$ /.,< *p,8AB",</`u `.. Np "pA@` B`+\//,x4iS&4iS&4iS&4i0 4iS&4iS&4iS&4i0 |p.U*UNS~%To move left, press ,~%~W;U*U% ))***++,p , ,x, xTo move right,  press .W;U*w~%~% --.*.//p 0 0x0 xTo rotate,ess ' 01**.1/p 2 2xu*U*w2 xTo drop onto the heap, press ` 233445/p 5 5xu*U*U5 xEnter speed (if unsure, make it 5 or 10)W;U*w:  66778899:p : :x: x*READ 0*QUO p < <xu*@a< xUPDATE-SCORESSLEEPTETRIS,: ,z,8,8D",< ,},8,8 ,8 ",< ,D,8,8!,8!",< ,,8,8",8"D",< ,,8,8#,8#",< , D0!,8,8$,8$",< ; $ ";<  Nh *h,8 ,,8,8%",<Lh!( * J ,,8,8% ,8&",< ,,8,8&,8',8",L$1< '5B =+ `= "+//,x',"D"025:'" <`wHIBOU;TETRIS 185_10[ 8[:U @3ng ",xh'~a ~a ~a ~a~a ~U+]jUa, ~a ~a:~a:~a~ ??@@AA,p B BxB xW;Unuth Dp D DxD xREMAINDER Dp E ExE xstw:]nW Fp F FxF xnd Gp G GxG xrd Hpw;]nw H HxH x Dp I IxI x Dp I IxI x Dpw;]nw J JxJ x Dp J JxJ x Dp K KxK x Dpw*U*U K KxK xNTHJANFEBMARAPRMAYJUNU*U*JULAUGSEPOCTNOVDECHIBOU;TETRIS 185_11[`,8Zg[,8ZgZ[,8Zg~-,0@0 ,8-, ,8Zg}-, ,8  ,K,8,8M,8M,8g|,8g|,8g|,8g|BCCz '$fE@ g|4B; "D+= $ g|EEFGHIIJJKKz I fL,8Zg{[8 8/.LMMNNOOPPQQRz 0`,< "pL,8 .h[gz @.,< *p,8[g{,8Zgz[,8ZgzZ[,8A@`"",< //,xB]*U*U (+SCORESINOPENREADCLOSEUNAMEDOWDATEU*U*UDAYTIMESORTLENGTHNTHCDRTetris Hall of Fame~U+]jP%==========~% YZZ[[\\\\p ] ]x] xOUTPRINT,8 0 ,Q,8,8u,8v",<T,8 ,T,8 5,8",<T,8 gUUz|X631,8)A&Vz88[`,8Vz85 ,8WziE|5-,0@,X-,,X-,,X-,0@! g-, `-, $>W@ C B`X1n+f ` "XYR` ,h@b,8,8v",< ,k,8,8w,8w", < $R `, ,p,8,8x,8x@ ",<T Bg ,s,8,8g,8",<^A@T" gU/,x>Sx)' #S'"R~]>Sx)' #]PN;