package org.sc3d.apt.tetris.v1;import java.awt.*;public class Tetris extends jav
a.applet.Applet implements Runnable{int[]b=new int[338];int m,s=13,i,n,p,d=4,t;c
har r=1;public void update(Graphics g){for(i=0;i<325;i++){g.setColor(new Color(2
55*(b[i]*16513&65793)));g.fillRect(i%s*8,i/s*8,8,8);}}public void start(){new Th
read(this).start();}public synchronized void run(){for(i=10;i<338;b[i++]=7);whil
e(p!=43){for(m=0;m<325;)if(b[m++]==0)m+=s-m%s;else if(m%s==0)for(i=m;i>s;)b[--i]
=b[i-s];r*=p=43;while(m!=1||t==0){m=1;try{wait(600);}catch(Exception e){}for(i=2
;0<=i--;){t&=i>>1;if(i==0){if(m==3)d*=13;else p+=m-1+s*(m&1);}if(t>0){if(m==3)d*
=21;else p-=m-1+s*(m&1);}for(n=0;n<8;n++){if(0<((1<<n)&(1|(0x32C630921A2L>>(6*(r
%7)))))){t+=b[p];if(i!=0)b[p]=i<0?r%7+1:0;}d=d*(1+6*(n&2))%34;p+=d-17;}}repaint(
);}}}public synchronized boolean handleEvent(Event e){if(e.id==401){m=e.key&3;no
tify();}return 0>0;}}