文档介绍:连连看java程序-;.*;importkyodai/***消除连连看方块的类*/lassAnimateDeleteimplementsRunnable{staticJButton[]dots;staticlongdelay二201;int[]array二newint[44];//最大距离只可能为2行1列privateintcount=0;privatevolatileThreadthread;publicAnimateDelete(JButton[]dots){=dots;array二newint[0];/***初始化*/publicAnimateDelete(intdired,Pointa,Pointb){initArray();calcTwoPoint(direct,a,b);start();}/**direct方向1表示a,b在同一直线上,b,c在同一竖线上;0表示a,b在同一竖线上,b,c在同一直线上*/publicAnimateDelete(intdirect,Pointa,Pointb,Pointc)initArray();if(direct=1){//先横后竖calcTwoPoint(1,a,b);calcTwoPoint(0,b,c);}else{calcTwoPoint(0,a,b);count--;calcTwoPoint(1,b,c);}start();}/**direct方向1表示a,b为横线,b,c为竖线,c,d为横线0表示d,b为竖线,b,c为横线,c,d为竖线*/publicAnimateDelete(intdirect,Pointa,Pointb,Pointc,Pointd){initArray();if(direct=1){//横、竖、横方式处理calcTwoPoint(1,a,b);count・・;calcTwoPoint(0,b,c);count--;calcTwoPoint(1,c,d);}else{//竖、横、竖方式处理calcTwoPoint(0,a,b);count--;calcTwoPoint(1,b,c);count--;calcTwoPoint(0,c,d);}start();}/***计算消除的两点*/privatevoidcalcTwoPoint(intdirect,Pointa,Pointb){intoffset=0;if(direct=1){//横向连接if(>){//a点向b点是从右向左在水平线上消除for(inty=;y>=;y--){*+y;array[count]二offset;count++;}}else{//a点向b点是从左向右在水平线上消除for(;y<;y++){*'IN+y;array[count]二offset;count-H-;}}}else{//竖向连接if(>){//a点向b点是从下向上垂直消除for(intx=;x>=;x--){offset二x*+;array[count]二offset;count;}}else{//a点向b点是从上向下垂直消除for(;x<;x++){offset=x*+;array[count]=offset;count;}}}}/***设置动画速度*/publicvoidsetSpeed(intspeed){delay二speed*10;}privatevoidinitArray(){if(array==0){return;}publicvoidtest(){if(array==0){return;for(inti二0;i<array,length;i-H-){if(array[i]!=-1){message(”[”+array[i]+"]");}}();}publicvoidstart(){thread=newThread(this);thread・start();}publicvoidrun(){if(count<2){return;}();booleananimate二true;while(thread=currentThread&&