package Karl.Doenitz; import java.awt.*; import java.awt.event.*; import javax.swing.*; @SuppressWarnings("serial") public class Tetris extends JFrame implements KeyListener { int pos[] = {0,1}; boolean bottom = false; int n = 20; int m = 10; JButton b[][]; Color tmp[][] = new Color[m][n]; int rand = 0; int centralx = 0; int centraly = 0; int deltax = 0; int perim[][] = new int[m+4][n+4]; or[][][] prof = new or[4][4][7]; Color rnd[] = {Color.red, Color.yellow, Color.cyan, Color.green, Color.white, Color.blue, Color.orange}; int rowsclrd = 0; public Tetris(){ this.setTitle("俄罗斯方块KarlDoenitz制作"); for(int a = 0;a<4;a++){ for(int b = 0;b<4;b++){ for(int c = 0;c<7;c++){ prof[a][b][c] = new or(); } } } this.setDefaultCloseOperation(EXIT_ON_CLOSE); prof[0][0][0].x = -1; prof[0][1][0].x = 0; prof[0][2][0].x = 0; prof[0][3][0].x = 1; prof[1][0][0].x = 0; prof[1][1][0].x = 0; prof[1][2][0].x = -1; prof[1][3][0].x = -1; prof[2][0][0].x = 1; prof[2][1][0].x = 0; prof[2][2][0].x = 0; prof[2][3][0].x = -1; prof[3][0][0].x = 0; prof[3][1][0].x = 0; prof[3][2][0].x = 1; prof[3][3][0].x = 1; prof[0][0][1].x = -1; prof[0][1][1].x = -1; prof[0][2][1].x = 0; prof[0][3][1].x = 1; prof[1][0][1].x = -1; prof[1][1][1].x = 0; prof[1][2][1].x = 0; prof[1][3][1].x = 0; prof[2][0][1].x = 1; prof[2][1][1].x = 1; prof[2][2][1].x = 0; prof[2][3][1].x = -1; prof[3][0][1].x = 1; prof[3][1][1].x = 0; prof[3][2][1].x = 0; prof[3][3][1].x = 0; prof[0][0][2].x = -1; prof[0][1][2].x = 0; prof[0][2][2].x = 1; prof[0][3][2].x = 1; prof[1][0][2].x = 0; prof[1][1][2].x = 0; prof[1][2][2].x = 0; prof[1][3][2].x = -1; prof[2][0][2].x = 1; prof[2][1][2].x = 0; prof[2][2][2].x = -1; prof[2][3][2].x = -1; prof[3][0][2].x = 0; prof[3][1][2].x = 0; prof[3][2][2].x = 0; prof[3][3][2].x = 1; prof[0][0][3].x = -1; prof[0][1][3].x = 0; prof[0][2][3].x = 0; prof[0][3][3].x = 1; prof[1][0][3].x = -1; prof[1][1][3].x = -1; prof[1][2][3].x = 0; prof[1][3][3].x = 0; prof[2][0][3].x = 1; prof[2][1][3].x = 0; prof[2][2][3].x = 0; prof[2][3][3].x = -1; prof[3][0][3].x = 1; prof[3][1][3].x = 1; prof[3][2][3].x = 0; prof[3][3][3].x = 0; prof[0][0][4].x = -1; prof[0][1][4].x = 0; prof[0][2][4].x = 0; prof[0][3][4].x = 1; prof[1][0][4].x = 0; prof[1][1][4].x = 0; prof[1][2][4].x = -1; prof[1][3][4].x = 0; prof[2][0][4].x = 1; prof[2][1][4].x = 0; prof[2][2][4].x = 0; prof[2][3][4].x = -1; prof[3][0][4].x = 0; prof[3][1][4].x = 0; prof[3][2][4].x = 1; prof[3][3][4].x = 0; prof[0][0][5].x = 0; prof[0][1][5].x = 0; prof[0][2][5].x = 1; prof[0][3][5].x = 1; prof[1][0][5].x = 0; prof[1][1][5].x = 0; prof[1][2][5].x = 1; prof[1][3][5].x = 1; prof[2][0][5].x = 0; prof[2][1][5].x = 0; prof[2][2][5].x = 1; prof[2][3][5].x = 1; prof[3][0][5].x = 0; prof[3][1][5].x = 0; prof[3][2][5].x = 1; prof[3][3][5].x = 1; prof[0][0][6].x = -1; prof[0][1][6].x = 0; prof[0][2][6].x = 1; prof[0][3][6].x = 2; prof[1][0][6].x = 0; prof[1][1][6].x = 0; prof[1][2][6].x = 0; prof[1][3][6].x = 0; prof[2][0][6].x = 1; prof[2][1][6].x = 0; prof[2][2][6].x = -1; prof[2][3][6].x = -2; prof[3][0][6].x = 0; prof[3][1][6].x = 0; prof[3][2][6].x = 0; prof[3][3][6].x = 0; prof[0][0][0].y = 0; prof[0][1][0].y = 0; prof[0][2][0].y = 1; prof[0][3][0].y = 1; prof[1][0][0].y = -1; prof[1][1][0].y = 0; prof[1][2][0].y = 0; prof[1][3][0].y = 1; prof[2][0][0].y = 0; prof[2][1][0].y = 0; prof[2][2][0].y = -1; prof[2][3][0].y = -1; prof[3][0][0].y = 1; prof[3][1][0].y = 0; prof[3][2][0].y = 0; prof[3][3][0].y = -1; prof[0][0][1].y = 0; prof[0][1][1].y = 1; prof[0][2][1].y = 0; prof[0][3][1].y = 0; prof[1][0][1].y = -1; prof[1][1][1].y = -1; prof[1][2][1].y = 0; prof[1][3][1].y = 1; prof[2][0][1].y = -1; prof[2][1][1].y = 0; prof[2][2][1].y = 0; prof[2][3][1].y = 0; prof[3][0][1].y = 1; prof[3][1][1].y = 1; prof[3][2][1].y = 0; prof[3][3][1].y = -1; prof[0][0][2].y = 0; prof[0][1][2].y = 0; prof[0][2][2].y = 0; prof[0][3][2].y = 1; prof[1][0][2].y = -1; prof[1][1][2].y = 0; prof[1][2][2].y = 1; prof[1][3][2].y = 1; prof[2][0][2].y = 0; prof[2][1][2].y = 0; prof[2][2][2].y = 0; prof[2][3][2].y = -1; prof[3][0][2].y = 1; prof[3][1][2].y = 0; prof[3][2][2].y = -1; prof[3][3][2].y = -1; prof[0][0][3].y = 1; prof[0][1][3].y = 1; prof[0][2][3].y = 0; prof[0][3][3].y = 0; prof[1][0][3].y = -1; prof[1][1][3].y = 0; prof[1][2][3].y = 0; prof[1][3][3].y = 1; prof[2][0][3].y = -1; prof[2][1][3].y = -1; prof[2][2][3].y = 0; prof[2][3][3].y = 0; prof[3][0][3].y = 1; prof[3][1][3].y = 0; prof[3][2][3].y = 0; prof[3][3][3].y = -1; prof[0][0][4].y = 0; prof[0][1][4].y = 0; prof[0][2][4].y = 1; prof[0][3][4].y = 0; prof[1][0][4].y = -1; prof[1][1][4].y = 0; prof[1][2][4].y = 0; prof[1][3][4].y = 1; prof[2][0][4].y = 0; prof[2][1][4].y = 0; prof[2][2][4].y = -1; prof[2][3][4].y = 0; prof[3][0][4].y = 1; prof[3][1][4].y = 0; prof[3][2][4].y = 0; prof[3][3][4].y = -1; prof[0][0][5].y = 0; prof[0][1][5].y = 1; prof[0][2][5].y = 0; prof[0][3][5].y = 1; prof[1][0][5].y = 0; prof[1][1][5].y = 1; prof[1][2][5].y = 0; prof[1][3][5].y = 1; prof[2][0][5].y = 0; prof[2][1][5].y = 1; prof[2][2][5].y = 0; prof[2][3][5].y = 1; prof[3][0][5].y = 0; prof[3][1][5].y = 1; prof[3][2][5].y = 0; prof[3][3][5].y = 1; prof[0][0][6].y = 0; prof[0][1][6].y = 0; prof[0][2][6].y = 0; prof[0][3][6].y = 0; prof[1][0][6].y = -1; prof[1][1][6].y = 0; prof[1][2][6].y = 1; prof[1][3][6].y = 2; prof[2][0][6].y = 0; prof[2][1][6].y = 0; prof[2][2][6].y = 0; prof[2][3][6].y = 0; prof[3][0][6].y = -1; prof[3][1][6].y = 0; prof[3][2][6].y = 1; prof[3][3][6].y = 2; for (int y = 0;y<2;y++){ for (int x = 0;x<m+4;x++){ perim[x][y]= 1; }} for (int y = n+2;y<n+4;y++){ for (int x = 0;x<m+4;x++){ perim[x][y]= 4; }} for (int y = 2;y<n+2;y++){ for (int x = 0;x<2;x++){ perim[x][y]= 2; }} for (int y = 2;y<n+2;y++){ for (int x = m+2;x<m+4;x++){ perim[x][y]= 2; }} for(int y = 0;y<n+4;y++){ for (int x = 0;x<m+4;x++){ System.out.print(perim[x][y]); } System.out.println(""); } b = new JButton [m][n]; setLayout(new GridLayout(n,m));//Grid layouts x and y are SWAPPED! for (int y = 0;y<n;y++){ for (int x = 0;x<m;x++){ b[x][y] = new JButton(" "); tmp[x][y] = Color.DARK_GRAY; b[x][y].setBackground(Color.DARK_GRAY); add(b[x][y]); b[x][y].setEnabled(true); }//end inner for } setFocusable(true); addKeyListener(this); pack(); setVisible(true); blockgen(); }//end constructor Mine() class or { int x; int y; } public void blockgen(){ Component temporaryLostComponent = null; pos[0] = 0; pos[1] = 1; rand = (int) (Math.floor(Math.random()*7+1)); centralx = 4; centraly = 0; System.out.print(rand); if ((b[4+prof[pos[0]][0][rand-1].x][prof[pos[0]][0][rand-1].y].getBackground() == Color.DARK_GRAY) && (b[4+prof[pos[0]][1][rand-1].x][prof[pos[0]][1][rand-1].y].getBackground() == Color.DARK_GRAY) && (b[4+prof[pos[0]][2][rand-1].x][prof[pos[0]][2][rand-1].y].getBackground() == Color.DARK_GRAY) && (b[4+prof[pos[0]][3][rand-1].x][prof[pos[0]][3][rand-1].y].getBackground() == Color.DARK_GRAY)){ b[4+prof[pos[0]][0][rand-1].x][prof[pos[0]][0][rand-1].y].setBackground(rnd[rand-1]); b[4+prof[pos[0]][1][rand-1].x][prof[pos[0]][1][rand-1].y].setBackground(rnd[rand-1]); b[4+prof[pos[0]][2][rand-1].x][prof[pos[0]][2][rand-1].y].setBackground(rnd[rand-1]); b[4+prof[pos[0]][3][rand-1].x][prof[pos[0]][3][rand-1].y].setBackground(rnd[rand-1]); go(); } else { JOptionPane.showMessageDialog(temporaryLostComponent, "游戏结束! 你一共得了"+rowsclrd+" 分,干得好,继续努力!"); System.exit(0); } } public void rotate(){ if (pos[0] < 3){ pos[1] = pos[0]; pos[0]++; } else if (pos[0] == 3){ pos[0] = 0; pos[1] = 3; } else { System.out.println("error"); } if ((perim[2+centralx+prof[pos[0]][0][rand-1].x][centraly+prof[pos[0]][0][rand-1].y+2] != 4) && (perim[2+centralx+prof[pos[0]][0][rand-1].x][centraly+prof[pos[0]][0][rand-1].y+2] != 1) && (perim[2+centralx+prof[pos[0]][0][rand-1].x][centraly+prof[pos[0]][0][rand-1].y+2] != 2) && (perim[2+centralx+prof[pos[0]][0][rand-1].x][centraly+prof[pos[0]][0][rand-1].y+2] != 3) && (perim[centralx+2+prof[pos[0]][1][rand-1].x][centraly+prof[pos[0]][1][rand-1].y+2] != 4) && (perim[centralx+2+prof[pos[0]][1][rand-1].x][centraly+prof[pos[0]][1][rand-1].y+2] != 1) && (perim[centralx+2+prof[pos[0]][1][rand-1].x][centraly+prof[pos[0]][1][rand-1].y+2] != 2) && (perim[centralx+2+prof[pos[0]][1][rand-1].x][centraly+prof[pos[0]][1][rand-1].y+2] != 3) && (perim[centralx+2+prof[pos[0]][2][rand-1].x][centraly+prof[pos[0]][2][rand-1].y+2] != 4) && (perim[centralx+2+prof[pos[0]][2][rand-1].x][centraly+prof[pos[0]][2][rand-1].y+2] != 1) && (perim[centralx+2+prof[pos[0]][2][rand-1].x][centraly+prof[pos[0]][2][rand-1].y+2] != 2) && (perim[centralx+2+prof[pos[0]][2][rand-1].x][centraly+prof[pos[0]][2][rand-1].y+2] != 3) && (perim[centralx+prof[pos[0]][3][rand-1].x+2][centraly+prof[pos[0]][3][rand-1].y+2] != 4) && (perim[centralx+prof[pos[0]][3][rand-1].x+2][centraly+prof[pos[0]][3][rand-1].y+2] != 1) && (perim[centralx+prof[pos[0]][3][rand-1].x+2][centraly+prof[pos[0]][3][rand-1].y+2] != 2) && (perim[centralx+prof[pos[0]][3][rand-1].x+2][centraly+prof[pos[0]][3][rand-1].y+2] != 3)){ b[centralx+prof[pos[1]][0][rand-1].x][centraly+prof[pos[1]][0][rand-1].y].setBackground(Color.DARK_GRAY); b[centralx+prof[pos[1]][1][rand-1].x][centraly+prof[pos[1]][1][rand-1].y].setBackground(Color.DARK_GRAY); b[centralx+prof[pos[1]][2][rand-1].x][centraly+prof[pos[1]][2][rand-1].y].setBackground(Color.DARK_GRAY); b[centralx+prof[pos[1]][3][rand-1].x][centraly+prof[pos[1]][3][rand-1].y].setBackground(Color.DARK_GRAY); b[centralx+(prof[pos[0]][0][rand-1].x)][centraly+(prof[pos[0]][0][rand-1].y)].setBackground(rnd[rand-1]); b[centralx+(prof[pos[0]][1][rand-1].x)][centraly+(prof[pos[0]][1][rand-1].y)].setBackground(rnd[rand-1]); b[centralx+(prof[pos[0]][2][rand-1].x)][centraly+(prof[pos[0]][2][rand-1].y)].setBackground(rnd[rand-1]); b[centralx+(prof[pos[0]][3][rand-1].x)][centraly+(prof[pos[0]][3][rand-1].y)].setBackground(rnd[rand-1]); } else { if (pos[1] > 0){ pos[0] = pos[1]; pos[1]--; } else if (pos[1] == 0){ pos[0] = 0; pos[1] = 3; } } } public int getxs(){ int xs = 0; int[] xf = {-1, -1, -1, -1}; for (int d = 0;d<4;d++){ if ((xf[0] != prof[pos[0]][d][rand-1].x) || (xf[1] != prof[pos[0]][d][rand-1].x) || (xf[2] != prof[pos[0]][d][rand-1].x) || (xf[3] != prof[pos[0]][d][rand-1].x)){ xf[d] = prof[pos[0]][d][rand-1].x; } } for (int d = 0;d<4;d++){ if (xf[d] != -1){ xs++; } } return xs; } public void movedown(){ int[] m2 = {-1, -1, -1, -1}; int[] m1 = {-1, -1, -1, -1}; int[] zero = {-1, -1, -1, -1}; int[] one = {-1, -1, -1, -1}; int[] two = {-1, -1, -1, -1}; for (int d = 0;d<4;d++){ if (prof[pos[0]][d][rand-1].x == -2){ m2[d] = d; } else if (prof[pos[0]][d][rand-1].x == -1){ m1[d] = d; } else if (prof[pos[0]][d][rand-1].x == 0){ zero[d] = d; } else if (prof[pos[0]][d][rand-1].x == 1){ one[d] = d; } else if (prof[pos[0]][d][rand-1].x == 2){ two[d] = d; } } int tmpm2 = -5; int tmpm1 = -5; int tmpzero = -5; int tmpone = -5; int tmptwo = -5; for (int d = 0;d<4;d++){ if (m2[d] != -1){ if (tmpm2<prof[pos[0]][m2[d]][rand-1].y){ tmpm2 = prof[pos[0]][m2[d]][rand-1].y; } } if (m1[d] != -1){ if (tmpm1<prof[pos[0]][m1[d]][rand-1].y){ tmpm1 = prof[pos[0]][m1[d]][rand-1].y; } } if (zero[d] != -1){ if (tmpzero<prof[pos[0]][zero[d]][rand-1].y){ tmpzero = prof[pos[0]][zero[d]][rand-1].y; } } if (one[d] != -1){ if (tmpone<prof[pos[0]][one[d]][rand-1].y){ tmpone = prof[pos[0]][one[d]][rand-1].y; } } if (two[d] != -1){ if (tmptwo<prof[pos[0]][two[d]][rand-1].y){ tmptwo = prof[pos[0]][two[d]][rand-1].y; } } } int total = 0; for (int d = 0;d<4;d++){ if (prof[pos[0]][d][rand-1].x == -2){ if (perim[2+centralx+-2][2+centraly+tmpm2+1] != 4){ if(b[centralx+-2][centraly+tmpm2+1].getBackground() == Color.DARK_GRAY){ total++; }} } else if (prof[pos[0]][d][rand-1].x == -1){ if (perim[2+centralx+-1][2+centraly+tmpm1+1] != 4){ if (b[centralx+-1][centraly+tmpm1+1].getBackground() == Color.DARK_GRAY){ total++; }} } else if (prof[pos[0]][d][rand-1].x == 0){ if (perim[2+centralx][2+centraly+tmpzero+1] != 4){ if (b[centralx][centraly+tmpzero+1].getBackground() == Color.DARK_GRAY){ total++; }} } else if (prof[pos[0]][d][rand-1].x == 1){ if (perim[2+centralx+1][2+centraly+tmpone+1] != 4){ if (b[centralx+1][centraly+tmpone+1].getBackground() == Color.DARK_GRAY){ total++; }} } else if (prof[pos[0]][d][rand-1].x == 2){ if (perim[2+centralx+2][2+centraly+tmptwo+1] != 4){ if (b[centralx+2][centraly+tmptwo+1].getBackground() == Color.DARK_GRAY){ total++; }} } } if (total == 4){ b[centralx+prof[pos[0]][0][rand-1].x][centraly+prof[pos[0]][0][rand-1].y].setBackground(Color.DARK_GRAY); b[centralx+prof[pos[0]][1][rand-1].x][centraly+prof[pos[0]][1][rand-1].y].setBackground(Color.DARK_GRAY); b[centralx+prof[pos[0]][2][rand-1].x][centraly+prof[pos[0]][2][rand-1].y].setBackground(Color.DARK_GRAY); b[centralx+prof[pos[0]][3][rand-1].x][centraly+prof[pos[0]][3][rand-1].y].setBackground(Color.DARK_GRAY); centraly++; b[centralx+prof[pos[0]][0][rand-1].x][centraly+prof[pos[0]][0][rand-1].y].setBackground(rnd[rand-1]); b[centralx+prof[pos[0]][1][rand-1].x][centraly+prof[pos[0]][1][rand-1].y].setBackground(rnd[rand-1]); b[centralx+prof[pos[0]][2][rand-1].x][centraly+prof[pos[0]][2][rand-1].y].setBackground(rnd[rand-1]); b[centralx+prof[pos[0]][3][rand-1].x][centraly+prof[pos[0]][3][rand-1].y].setBackground(rnd[rand-1]); } else { bottom = true; } } public void go(){ do{ try { Thread.sleep(1000L); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } movedown(); rowcheck(); } while(bottom == false); bottom = false; blockgen(); } public void rowcheck(){ int row = 0; for (int y = 0;y<20;y++){ for (int x = 0;x<10;x++){ if (b[x][y].getBackground() != Color.DARK_GRAY){ row++; } if (row == 10){ rowsclrd++; rowclear(y); } } row = 0; } } public void rowclear(int y){ int inc = 0; for (int x = 0;x<10;x++){ b[x][y].setBackground(Color.DARK_GRAY); } for (int c = y-1;c>-1;c--){ for (int x = 0;x<10;x++){ tmp[x][y-inc] = b[x][c].getBackground(); }inc++;} for (int c = y;c>-1;c--){ for (int x = 0;x<10;x++){ b[x][c].setBackground(tmp[x][c]); } } } public void movelr(){ int[] m2 = {-1, -1, -1, -1}; int[] m1 = {-1, -1, -1, -1}; int[] zero = {-1, -1, -1, -1}; int[] one = {-1, -1, -1, -1}; int[] two = {-1, -1, -1, -1}; for (int d = 0;d<4;d++){ if (prof[pos[0]][d][rand-1].y == -2){ m2[d] = d; } else if (prof[pos[0]][d][rand-1].y == -1){ m1[d] = d; } else if (prof[pos[0]][d][rand-1].y == 0){ zero[d] = d; } else if (prof[pos[0]][d][rand-1].y == 1){ one[d] = d; } else if (prof[pos[0]][d][rand-1].y == 2){ two[d] = d; } } int tmpm2 = -5; int tmpm1 = -5; int tmpzero = -5; int tmpone = -5; int tmptwo = -5; if (deltax == 1){ for (int d = 0;d<4;d++){ if (m2[d] != -1){ if (tmpm2<prof[pos[0]][m2[d]][rand-1].x){ tmpm2 = prof[pos[0]][m2[d]][rand-1].x; } } if (m1[d] != -1){ if (tmpm1<prof[pos[0]][m1[d]][rand-1].x){ tmpm1 = prof[pos[0]][m1[d]][rand-1].x; } } if (zero[d] != -1){ if (tmpzero<prof[pos[0]][zero[d]][rand-1].x){ tmpzero = prof[pos[0]][zero[d]][rand-1].x; } } if (one[d] != -1){ if (tmpone<prof[pos[0]][one[d]][rand-1].x){ tmpone = prof[pos[0]][one[d]][rand-1].x; } } if (two[d] != -1){ if (tmptwo<prof[pos[0]][two[d]][rand-1].x){ tmptwo = prof[pos[0]][two[d]][rand-1].x; } } } } else if (deltax == -1){ tmpm2 = 5; tmpm1 = 5; tmpzero = 5; tmpone = 5; tmptwo = 5; for (int d = 0;d<4;d++){ if (m2[d] != -1){ if (tmpm2>prof[pos[0]][m2[d]][rand-1].x){ tmpm2 = prof[pos[0]][m2[d]][rand-1].x; } } if (m1[d] != -1){ if (tmpm1>prof[pos[0]][m1[d]][rand-1].x){ tmpm1 = prof[pos[0]][m1[d]][rand-1].x; } } if (zero[d] != -1){ if (tmpzero>prof[pos[0]][zero[d]][rand-1].x){ tmpzero = prof[pos[0]][zero[d]][rand-1].x; } } if (one[d] != -1){ if (tmpone>prof[pos[0]][one[d]][rand-1].x){ tmpone = prof[pos[0]][one[d]][rand-1].x; } } if (two[d] != -1){ if (tmptwo>prof[pos[0]][two[d]][rand-1].x){ tmptwo = prof[pos[0]][two[d]][rand-1].x; } } } } int total = 0; for (int d = 0;d<4;d++){ if (prof[pos[0]][d][rand-1].y == -2){ if (perim[2+centralx+deltax+tmpm2][2+centraly-2] != 2){ if(b[centralx+deltax+tmpm2][centraly-2].getBackground() == Color.DARK_GRAY){ total++; }} } else if (prof[pos[0]][d][rand-1].y == -1){ if (perim[2+centralx+deltax+tmpm1][2+centraly-1] != 2){ if (b[centralx+deltax+tmpm1][centraly-1].getBackground() == Color.DARK_GRAY){ total++; }} } else if (prof[pos[0]][d][rand-1].y == 0){ if (perim[2+centralx+deltax+tmpzero][2+centraly] != 2){ if (b[centralx+deltax+tmpzero][centraly].getBackground() == Color.DARK_GRAY){ total++; }} } else if (prof[pos[0]][d][rand-1].y == 1){ if (perim[2+centralx+deltax+tmpone][2+centraly+1] != 2){ if (b[centralx+deltax+tmpone][centraly+1].getBackground() == Color.DARK_GRAY){ total++; }} } else if (prof[pos[0]][d][rand-1].y == 2){ if (perim[2+centralx+deltax+tmptwo][2+centraly+2] != 2){ if (b[centralx+deltax+tmptwo][centraly+2].getBackground() == Color.DARK_GRAY){ total++; }} } } if (total == 4){ b[centralx+prof[pos[0]][0][rand-1].x][centraly+prof[pos[0]][0][rand-1].y].setBackground(Color.DARK_GRAY); b[centralx+prof[pos[0]][1][rand-1].x][centraly+prof[pos[0]][1][rand-1].y].setBackground(Color.DARK_GRAY); b[centralx+prof[pos[0]][2][rand-1].x][centraly+prof[pos[0]][2][rand-1].y].setBackground(Color.DARK_GRAY); b[centralx+prof[pos[0]][3][rand-1].x][centraly+prof[pos[0]][3][rand-1].y].setBackground(Color.DARK_GRAY); centralx = centralx+deltax; b[centralx+prof[pos[0]][0][rand-1].x][centraly+prof[pos[0]][0][rand-1].y].setBackground(rnd[rand-1]); b[centralx+prof[pos[0]][1][rand-1].x][centraly+prof[pos[0]][1][rand-1].y].setBackground(rnd[rand-1]); b[centralx+prof[pos[0]][2][rand-1].x][centraly+prof[pos[0]][2][rand-1].y].setBackground(rnd[rand-1]); b[centralx+prof[pos[0]][3][rand-1].x][centraly+prof[pos[0]][3][rand-1].y].setBackground(rnd[rand-1]); } } public static void main (String[] args){ new Tetris(); } @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_RIGHT){ deltax = 1; movelr(); } if (e.getKeyCode() == KeyEvent.VK_LEFT){ deltax = -1; movelr(); } if (e.getKeyCode() == KeyEvent.VK_UP){ rotate(); } if (e.getKeyCode() == KeyEvent.VK_DOWN){ movedown(); } } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } }
作者:KarlDoenitz 发表于2012-12-30 21:45:48 原文链接
阅读:64 评论:0 查看评论