《变态俄罗斯方块》测试版本完成啦!
有些BUG,实在不想改了。就当学习提高自己水平用吧:P
//上海黑暗之龙软件工作室 //变态俄罗斯(V1.0) 2005/08/15 //注:非常欢迎大家用本程序做为商业用途:P import java.util.Random; import java.awt.*; import java.awt.event.*;
public class Els2 extends Frame implements Runnable { Thread runThread=new Thread(this); kuai k=new kuai(); //定义物体元素 static int wind [][]=new int[17][10]; //定义整个图形表格 int ii=0; static int rand; //随机数字 Panel left=new Panel(); //左面板(游戏界面) Panel right=new Panel(); //右面板(用户数据) MyActionListen listen=new MyActionListen(); //监听事件 boolean zhuangtai=true; boolean fls=false; boolean bFull=false; Random rd=new Random(); static int sx=0,sy=0; static int sxtemp=0,sytemp=0; //反映当前xy // static int randd=0; //显示随机物体 public Els2() { //System.out.println("OK"); } public void intEls2() { this.setLayout(new BorderLayout()); //add(left,"Center"); right.setLayout(new GridLayout(20,10)); add(right,"East"); Button xuanzhuan=new Button("旋转"); xuanzhuan.addActionListener(listen); right.add(xuanzhuan); Button wangzuo=new Button("往左"); wangzuo.addActionListener(listen); right.add(wangzuo); Button wangyou=new Button("往右"); wangyou.addActionListener(listen); right.add(wangyou); Button wangxia=new Button("往下"); wangxia.addActionListener(listen); right.add(wangxia); Button biantai1=new Button("放留变态技能一"); biantai1.addActionListener(listen); right.add(biantai1); Button biantai2=new Button("刷四行变态技能二"); biantai2.addActionListener(listen); right.add(biantai2); Button biantai3=new Button("超级变态之神秘技能:P"); biantai3.addActionListener(listen); right.add(biantai3); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); } public void run() { kuai kk=new kuai(); //boolean zhuangtai=true; while(true) { try { Thread.sleep(400); } catch(Exception e) { e.printStackTrace(); }
if(zhuangtai) { rand=rd.nextInt(13); //rand=12; switch(rand) //随机选出 { case 0: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.line[x1][y1]; } zhuangtai=false; break; case 1: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.hline[x1][y1]; } zhuangtai=false; break; case 2: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.t[x1][y1]; } zhuangtai=false; break; case 3: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.t1[x1][y1]; } zhuangtai=false; break; case 4: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.t2[x1][y1]; } zhuangtai=false; break; case 5: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.t3[x1][y1]; } zhuangtai=false; break; case 6: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.z[x1][y1]; } zhuangtai=false; break; case 7: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.z1[x1][y1]; } zhuangtai=false; break; case 8: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.fang[x1][y1]; } zhuangtai=false; break; case 9: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.lx[x1][y1]; } zhuangtai=false; break; case 10: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.lx1[x1][y1]; } zhuangtai=false; break; case 11: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.lx2[x1][y1]; } zhuangtai=false; break; case 12: for(int x=0,x1=0;x<4;x++,x1++) for(int y=3,y1=0;y<7;y++,y1++) { wind[x][y]=kk.lx3[x1][y1]; } zhuangtai=false; break; } } //System.out.println("run"); int xtemp=0; int ffff=0; int full=0; int ttemp=0; loop:for(sx=16;sx>=0;sx--) //自由下落 for(sy=9;sy>=0;sy--) { if(wind[sx][sy]==1) //最好在此处设置警戒线,防止继续下落物体 { sxtemp=sx; sytemp=sy; //要保证充分搜索每个地方 if(sx==16) xtemp=15; else xtemp=sx; if(wind[xtemp+1][sy]==2) //核心算法弄的我焦头烂额,妈的后来灵感了,原来那么简单 {
for(int xxx=16;xxx>=0;xxx--) for(int yyy=9;yyy>=0;yyy--) if(wind[xxx][yyy]==1) wind[xxx][yyy]=2; zhuangtai=true; continue loop; //需要进一步的判断,可能会遇到横的长条有很大的BUG //////////////////////////////////////////////////////
} else if(wind[xtemp+1][sy-1]==2 && wind[xtemp][sy-1]==1) //针对Z { for(int xxx=16;xxx>=0;xxx--) for(int yyy=9;yyy>=0;yyy--) if(wind[xxx][yyy]==1) wind[xxx][yyy]=2; zhuangtai=true; continue loop; } else if(wind[xtemp][sy-2]==2 && wind[xtemp-1][sy-2]==1) //还是针对Z { for(int xxx=16;xxx>=0;xxx--) for(int yyy=9;yyy>=0;yyy--) if(wind[xxx][yyy]==1) wind[xxx][yyy]=2; zhuangtai=true; continue loop; } else if(wind[xtemp][sy-1]==2 && wind[xtemp-1][sy-1]==1) //针对T(左) { for(int xxx=16;xxx>=0;xxx--) for(int yyy=9;yyy>=0;yyy--) if(wind[xxx][yyy]==1) wind[xxx][yyy]=2; zhuangtai=true; continue loop; } for(int sx=16;sx>=0;sx--) { full=0; //开始判断刷 for(int sy=9;sy>=0;sy--) { if(wind[sx][sy]==2) full+=1; else if(full==8) { //for(int tsx=sx;tsx>=0;tsx--) for(int tsy=9;tsy>=0;tsy--) wind[sx][tsy]=0; for(int mx=sx;mx>0;mx--) for(int my=9;my>=0;my--) { // System.out.println("fuck"+mx); ttemp=wind[mx][my]; wind[mx][my]=wind[mx-1][my]; wind[mx-1][my]=ttemp; } full=0; } } } } if(wind[sx][sy]==1) { if(sx==16) //判断是否到底了,然后变2 { for(int xx=16;xx>=0;xx--) for(int yy=9;yy>=0;yy--) if(wind[xx][yy]==1) wind[xx][yy]=2; for(int sx=16;sx>=0;sx--) { full=0; //开始判断刷 for(int sy=9;sy>=0;sy--) { if(wind[sx][sy]==2) full+=1; else if(full==8) { //for(int tsx=sx;tsx>=0;tsx--) for(int tsy=9;tsy>=0;tsy--) wind[sx][tsy]=0; for(int mx=sx;mx>0;mx--) for(int my=9;my>=0;my--) { // System.out.println("fuck"+mx); ttemp=wind[mx][my]; wind[mx][my]=wind[mx-1][my]; wind[mx-1][my]=ttemp; } full=0; } } } zhuangtai=true; continue loop; } else { wind[sx][sy]=0; wind[sx+1][sy]=1; }
} } System.out.println("repaint"); this.repaint(); } }
public void init() { runThread.start(); } public void paint(Graphics g) {
g.setColor(Color.BLUE); System.out.println("paint"); int tempx; int tempy; g.drawRect(120,40,320,680); for(int i=120;i<=400;i+=40) g.drawLine(i,40,i,720); for(int j=80;j<=720;j+=40) g.drawLine(120,j,440,j); //画方格布局 for(int x=0;x<17;x++) { tempy=(x+1)*40; for(int y=0;y<10;y++) { tempx=(y+1)*40; if(wind[x][y]==1 || wind[x][y]==2) g.fillRect(tempx,tempy,40,40); }
} }
public static void main(String args[]) { System.out.println("Starting Els..."); Els2 mainFrame = new Els2(); mainFrame.intEls2(); mainFrame.setSize(1024, 768); mainFrame.setTitle("上海黑暗之龙之变态俄罗斯"); mainFrame.setVisible(true); mainFrame.init(); } }
class kuai { int [][] line={{0,1,0,0}, {0,1,0,0}, {0,1,0,0}, {0,1,0,0}}; int [][] hline={{1,1,1,1}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}}; int [][] t={{0,1,1,1}, {0,0,1,0}, {0,0,0,0}, {0,0,0,0}}; int [][] t1={{0,0,1,0}, {0,1,1,0}, {0,0,1,0}, {0,0,0,0}}; int [][] t2={{0,0,1,0}, {0,1,1,1}, {0,0,0,0}, {0,0,0,0}}; int [][] t3={{0,1,0,0}, {0,1,1,0}, {0,1,0,0}, {0,0,0,0}}; int [][] z={{0,1,1,0}, {0,0,1,1}, {0,0,0,0}, {0,0,0,0}}; int [][] z1={{0,0,1,0}, {0,1,1,0}, {0,1,0,0}, {0,0,0,0}}; int [][] fang={{0,1,1,0}, {0,1,1,0}, {0,0,0,0}, {0,0,0,0}}; int [][] lx= {{0,1,0,0}, {0,1,0,0}, {0,1,1,0}, {0,0,0,0}}; int [][] lx1= {{0,1,1,1}, {0,1,0,0}, {0,0,0,0}, {0,0,0,0}}; int [][] lx2= {{0,1,1,0}, {0,0,1,0}, {0,0,1,0}, {0,0,0,0}}; int [][] lx3= {{0,0,0,1}, {0,1,1,1}, {0,0,0,0}, {0,0,0,0}}; }
class MyActionListen implements ActionListener { int myx=0,myy=0; public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("旋转")) { if(new Els2().rand==0) { System.out.println("line"); myx=new Els2().sxtemp; myy=new Els2().sytemp; /*System.out.println("myx="+myx+" "+"myy="+myy); try { System.in.read(); }catch(Exception ee) {}*/ //if(new Els2().wind[myx+2][myy]==1 && new Els2().wind[myx+3][myy]==1) //判断是否是横还是竖 new Els2().wind[myx+1][myy]=0; //new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+4][myy]=0; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy+2]=1; new Els2().rand=1; } else if(new Els2().rand==1) { System.out.println("hline"); myx=new Els2().sxtemp; myy=new Els2().sytemp; //if(new Els2().wind[myx+2][myy]==1 && new Els2().wind[myx+3][myy]==1) //判断是否是横还是竖 new Els2().wind[myx+1][myy+1]=0; //中心点 new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+2]=0; new Els2().wind[myx+1][myy+3]=0; new Els2().wind[myx+1][myy+1]=1; //中心点 new Els2().wind[myx][myy+1]=1; new Els2().wind[myx-1][myy+1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().rand=0; /*try { System.in.read(); }catch(Exception ee) {}*/ /*new Els2().wind[myx+1][myy]=0; //new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+4][myy]=0; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy+2]=1;*/ } else if(new Els2().rand==2) { System.out.println("t"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+1][myy+2]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx][myy+1]=1; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+1][myy]=1; new Els2().rand=3; } else if(new Els2().rand==3) { System.out.println("t1"); myx=new Els2().sxtemp; myy=new Els2().sytemp;
new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+1][myy]=1; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().rand=4; } else if(new Els2().rand==4) { System.out.println("t2"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+1][myy]=1; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+3][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().rand=5; } else if(new Els2().rand==5) { System.out.println("t3"); myx=new Els2().sxtemp; myy=new Els2().sytemp; //hava a bug new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+3][myy+1]=1; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy+2]=1; new Els2().rand=2; } else if(new Els2().rand==6) { System.out.println("z"); myx=new Els2().sxtemp; myy=new Els2().sytemp;
new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy+2]=0; new Els2().wind[myx][myy+1]=1; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+1][myy]=1; new Els2().wind[myx+2][myy]=1; new Els2().rand=7;//////////////////////////////////// } else if(new Els2().rand==7) { System.out.println("z1"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+3][myy-1]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+1][myy]=1; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().rand=6; } else if(new Els2().rand==8) { System.out.println("fang"); } else if(new Els2().rand==9) { System.out.println("lx");
myx=new Els2().sxtemp; myy=new Els2().sytemp;
new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+3][myy+1]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy+2]=1; new Els2().wind[myx+3][myy]=1; new Els2().rand=10; } else if(new Els2().rand==10) { System.out.println("lx1"); myx=new Els2().sxtemp; myy=new Els2().sytemp;
new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+1][myy+2]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+1][myy]=1; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+3][myy+1]=1; new Els2().rand=11; } else if(new Els2().rand==11) { System.out.println("lx2"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+3][myy+1]=0; new Els2().wind[myx+1][myy+2]=1; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy+2]=1; new Els2().rand=12; } else if(new Els2().rand==12) { System.out.println("lx3"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+2][myy-2]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+3][myy-1]=1; new Els2().wind[myx+3][myy]=1; new Els2().rand=9; }
} else if(e.getActionCommand().equals("往下")) { if(new Els2().rand==0) { System.out.println("line"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+5][myy]=1; } else if(new Els2().rand==1) { System.out.println("hline"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+1][myy+2]=0; new Els2().wind[myx+1][myy+3]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy+2]=1; new Els2().wind[myx+2][myy+3]=1; } else if(new Els2().rand==2) { System.out.println("t"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+1][myy+2]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy+2]=1; new Els2().wind[myx+3][myy+1]=1; } else if(new Els2().rand==3) { System.out.println("t1"); myx=new Els2().sxtemp; myy=new Els2().sytemp;
new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+3][myy]=1; new Els2().wind[myx+4][myy]=1; new Els2().wind[myx+3][myy-1]=1; } else if(new Els2().rand==4) { System.out.println("t2"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+3][myy]=1; new Els2().wind[myx+3][myy-1]=1; new Els2().wind[myx+3][myy+1]=1; } else if(new Els2().rand==5) { System.out.println("t3"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+3][myy]=1; new Els2().wind[myx+4][myy]=1; new Els2().wind[myx+3][myy+1]=1; } else if(new Els2().rand==6) { System.out.println("z"); myx=new Els2().sxtemp; myy=new Els2().sytemp;
new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy+2]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+3][myy+1]=1; new Els2().wind[myx+3][myy+2]=1; } else if(new Els2().rand==7) { System.out.println("z1"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+3][myy-1]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+3][myy]=1; new Els2().wind[myx+3][myy-1]=1; new Els2().wind[myx+4][myy-1]=1; } else if(new Els2().rand==8) { System.out.println("fang"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+3][myy]=1; new Els2().wind[myx+3][myy+1]=1; } else if(new Els2().rand==9) { System.out.println("lx"); myx=new Els2().sxtemp; myy=new Els2().sytemp;
new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+3][myy+1]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+3][myy]=1; new Els2().wind[myx+4][myy]=1; new Els2().wind[myx+4][myy+1]=1; } else if(new Els2().rand==10) { System.out.println("lx1"); myx=new Els2().sxtemp; myy=new Els2().sytemp;
new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+1][myy+2]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy+2]=1; new Els2().wind[myx+3][myy]=1; } else if(new Els2().rand==11) { System.out.println("lx2"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+3][myy+1]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+3][myy+1]=1; new Els2().wind[myx+4][myy+1]=1; } else if(new Els2().rand==12) { System.out.println("lx3"); myx=new Els2().sxtemp; myy=new Els2().sytemp; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+2][myy-2]=0; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+3][myy]=1; new Els2().wind[myx+3][myy-1]=1; new Els2().wind[myx+3][myy-2]=1; } } else if(e.getActionCommand().equals("往左")) //哈哈,搞定了,判断每种形状 { if(new Els2().rand==0) { System.out.println("line"); myx=new Els2().sxtemp; myy=new Els2().sytemp; //System.out.println("ffffffffff"+myy); if(new Els2().wind[myx+1][myy]==1 && myy>=3) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy-1]=1; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+4][myy-1]=1; new Els2().wind[myx+4][myy]=0; } } else if(new Els2().rand==1) { System.out.println("hline"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(new Els2().wind[myx+1][myy+3]==1 && myy>=3) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+1][myy+3]=0; } } else if(new Els2().rand==2) { System.out.println("t"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(new Els2().wind[myx+1][myy+2]==1 && myy>=3) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy+2]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+1][myy]=1; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy]=1; } } else if(new Els2().rand==3) { System.out.println("t1"); myx=new Els2().sxtemp; myy=new Els2().sytemp; //System.out.println("aaaaaaaaaaaaaaaaaa"+myy); if( myy>=4) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+3][myy-1]=1; new Els2().wind[myx+2][myy-2]=1; } } else if(new Els2().rand==4) { System.out.println("t2"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(new Els2().wind[myx+1][myy]==1 && myy>=4) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+2][myy-2]=1; new Els2().wind[myx+2][myy]=1; } } else if(new Els2().rand==5) { System.out.println("t3"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(new Els2().wind[myx+1][myy]==1 && myy>=3) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+3][myy-1]=1; new Els2().wind[myx+2][myy]=1; } } else if(new Els2().rand==6) { System.out.println("z"); myx=new Els2().sxtemp; myy=new Els2().sytemp; /*System.out.println(myx+" "+myy); try { System.in.read(); }catch(Exception ee) {}*/ if(new Els2().wind[myx+1][myy]==1 && myy>=3) //判断是否是真的是他自己(是否已经移动过)have a bug { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy+2]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+1][myy]=1; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+1]=1; } } else if(new Els2().rand==7) { System.out.println("z1"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(new Els2().wind[myx+1][myy]==1 && myy>=4) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+3][myy-1]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+2][myy-2]=1; new Els2().wind[myx+3][myy-2]=1; } } else if(new Els2().rand==8) { System.out.println("fang"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if( myy>=3) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+1][myy]=1; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+2][myy]=1; } } else if(new Els2().rand==9) { System.out.println("lx"); myx=new Els2().sxtemp; myy=new Els2().sytemp;
if( myy>=3) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+3][myy+1]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+3][myy-1]=1; new Els2().wind[myx+3][myy]=1; } } else if(new Els2().rand==10) { System.out.println("lx1"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if( myy>=3) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+1][myy+2]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+1][myy]=1; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+2][myy-1]=1; } } else if(new Els2().rand==11) { System.out.println("lx2"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if( myy>=3) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+3][myy+1]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+1][myy]=1; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+3][myy]=1; } } else if(new Els2().rand==12) { System.out.println("lx3"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if( myy>=5) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+2][myy-2]=0; new Els2().wind[myx+1][myy-1]=1; new Els2().wind[myx+2][myy-1]=1; new Els2().wind[myx+2][myy-2]=1; new Els2().wind[myx+2][myy-3]=1; } } } else if(e.getActionCommand().equals("往右")) { if(new Els2().rand==0) { System.out.println("line"); myx=new Els2().sxtemp; myy=new Els2().sytemp; //System.out.println("aaaaaaaaaaaaa"+myy); if(new Els2().wind[myx+1][myy]==1 && myy<9) { new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy+1]=1; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+4][myy+1]=1; new Els2().wind[myx+4][myy]=0; } } else if(new Els2().rand==1) { System.out.println("hline"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(new Els2().wind[myx+1][myy]==1 && myy<6) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+4]=1; } } else if(new Els2().rand==2) { System.out.println("t"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(new Els2().wind[myx+1][myy]==1 && myy<7) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+1][myy+2]=1; new Els2().wind[myx+1][myy+3]=1; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy+2]=1; } } else if(new Els2().rand==3) { System.out.println("t1"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(new Els2().wind[myx+1][myy]==1 && myy<9) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+3][myy+1]=1; new Els2().wind[myx+2][myy]=1; } } else if(new Els2().rand==4) { System.out.println("t2"); myx=new Els2().sxtemp; myy=new Els2().sytemp; /*System.out.println(myx+" "+myy); try { System.in.read(); }catch(Exception ee) {}*/ if(new Els2().wind[myx+1][myy]==1 && myy<8) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy+2]=1; } } else if(new Els2().rand==5) { System.out.println("t3"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(new Els2().wind[myx+1][myy]==1 && myy<8) //判断是否是真的是他自己(是否已经移动过) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+3][myy+1]=1; new Els2().wind[myx+2][myy+2]=1; } } else if(new Els2().rand==6) { System.out.println("z"); myx=new Els2().sxtemp; myy=new Els2().sytemp; /*System.out.println(myx+" "+myy); try { System.in.read(); }catch(Exception ee) {}*/ if(new Els2().wind[myx+2][myy+2]==1 && myy<7) //判断是否是真的是他自己(是否已经移动过)have a bug { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy+2]=0; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+1][myy+2]=1; new Els2().wind[myx+2][myy+2]=1; new Els2().wind[myx+2][myy+3]=1; } } else if(new Els2().rand==7) { System.out.println("z1"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(new Els2().wind[myx+1][myy]==1 && myy<9) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+3][myy-1]=0; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+3][myy]=1; } } else if(new Els2().rand==8) { System.out.println("fang"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if( myy<8) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy+2]=1; new Els2().wind[myx+3][myy+1]=1; new Els2().wind[myx+3][myy+2]=1; } } else if(new Els2().rand==9) { System.out.println("lx"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(myy<8) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+3][myy]=0; new Els2().wind[myx+3][myy+1]=0; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+3][myy+1]=1; new Els2().wind[myx+3][myy+2]=1; } } else if(new Els2().rand==10) { System.out.println("lx1"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if( myy<7) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+1][myy+2]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+1][myy+2]=1; new Els2().wind[myx+1][myy+3]=1; new Els2().wind[myx+2][myy+1]=1; } } else if(new Els2().rand==11) { System.out.println("lx2"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(myy<8) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+1][myy+1]=0; new Els2().wind[myx+2][myy+1]=0; new Els2().wind[myx+3][myy+1]=0; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+1][myy+2]=1; new Els2().wind[myx+2][myy+2]=1; new Els2().wind[myx+3][myy+2]=1; } } else if(new Els2().rand==12) { System.out.println("lx3"); myx=new Els2().sxtemp; myy=new Els2().sytemp; if(myy<9) { new Els2().wind[myx+1][myy]=0; new Els2().wind[myx+2][myy]=0; new Els2().wind[myx+2][myy-1]=0; new Els2().wind[myx+2][myy-2]=0; new Els2().wind[myx+1][myy+1]=1; new Els2().wind[myx+2][myy+1]=1; new Els2().wind[myx+2][myy]=1; new Els2().wind[myx+2][myy-1]=1; } } } else if(e.getActionCommand().equals("放留变态技能一")) System.out.println("放留变态技能一"); else if(e.getActionCommand().equals("刷四行变态技能二")) System.out.println("刷四行变态技能二"); else if(e.getActionCommand().equals("超级变态之神秘技能:P")) System.out.println("超级变态之神秘技能:P"); } }
|