Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Jun 8th, 2012  |  syntax: None  |  size: 3.27 KB  |  views: 6,906  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. import java.awt.Color;
  2. import java.awt.Component;
  3. import java.awt.GridLayout;
  4. import java.awt.event.KeyEvent;
  5. import java.awt.event.KeyListener;
  6.  
  7. import javax.swing.JButton;
  8. import javax.swing.JFrame;
  9. import javax.swing.JOptionPane;
  10.  
  11.  
  12. public class Stacker  extends JFrame implements KeyListener {
  13.         int iteration = 1;
  14.         static double time = 200;
  15.         static int last = 0;
  16.         static int m = 10;
  17.         static int n = 20;
  18.         JButton b[][];
  19.         static int length[] = {5,5};
  20.         static int layer = 19;
  21.         static int deltax[] = {0,0};
  22.         static boolean press = false;
  23.         static boolean forward = true;
  24.         static boolean start = true;
  25.         public static void main (String[] args){
  26.                 new Stacker();
  27.         }
  28.        
  29.         public Stacker(){
  30.                 this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  31.                 b = new JButton [m][n];
  32.         setLayout(new GridLayout(n,m));
  33.         for (int y = 0;y<n;y++){
  34.             for (int x = 0;x<m;x++){
  35.                     b[x][y] = new JButton(" ");
  36.                     b[x][y].setBackground(Color.white);
  37.                     add(b[x][y]);
  38.                     b[x][y].setEnabled(true);
  39.             }//end inner for
  40.     }
  41.         setFocusable(true);
  42.         addKeyListener(this);
  43.         pack();
  44.         setVisible(true);
  45.         go();
  46.         }
  47.        
  48.         public void go(){
  49.                 int tmp = 0;
  50.                 Component temporaryLostComponent = null;
  51.                 do{
  52.                 if (forward == true){
  53.                         forward();
  54.                 } else {
  55.                         back();
  56.                 }
  57.                 if (deltax[1] == 10-length[1]){
  58.                         forward = false;
  59.                 } else if (deltax[1] == 0){
  60.                         forward = true;
  61.                 }
  62.                 draw();
  63.                 try {
  64.                         Thread.sleep((long) time);
  65.                 } catch (InterruptedException e) {
  66.                         // TODO Auto-generated catch block
  67.                         e.printStackTrace();
  68.                 }
  69.  
  70.                 }while(press == false);
  71.                 if (layer>12){
  72.                         time= 150-(iteration*iteration*2-iteration);
  73.                 } else {
  74.                         time = time - 2.2;
  75.                 }
  76.                 iteration++;
  77.                 layer--;
  78.                 press = false;
  79.                 tmp = check();
  80.                 length[0] = length[1];
  81.                 length[1] = tmp;
  82.                 if (layer == -1){
  83.                         JOptionPane.showMessageDialog(temporaryLostComponent, "Congratulations! You beat the game!");
  84.                 }
  85.                 if (length[1] <= 0){   
  86.                         JOptionPane.showMessageDialog(temporaryLostComponent, "Game over! You reached line "+(18-layer)+"!");
  87.             System.exit(0);
  88.                 }
  89.                 last = deltax[1];
  90.                 start = false;
  91.                 go();
  92.         }
  93.         public int check(){
  94.                 if (start == true){
  95.                         return length[1];
  96.                 } else if (last<deltax[1]){
  97.                         if (deltax[1]+length[1]-1 <= last+length[0]-1){
  98.                                 return length[1];
  99.                         } else {
  100.                                 return length[1]-Math.abs((deltax[1]+length[1])-(last+length[0]));
  101.                         }
  102.                 } else if (last>deltax[1]){
  103.                         return length[1]-Math.abs(deltax[1]-last);
  104.                 } else {
  105.                         return length[1];
  106.                 }
  107.         }
  108.         public void forward(){
  109.                 deltax[0] = deltax[1];
  110.                 deltax[1]++;
  111.         }
  112.        
  113.         public void back(){
  114.                 deltax[0] = deltax[1];
  115.                 deltax[1]--;
  116.         }
  117.        
  118.         public void draw(){
  119.                 for (int x = 0;x<length[1];x++){
  120.                         b[x+deltax[0]][layer].setBackground(Color.white);
  121.                        
  122.                         }
  123.                 for (int x = 0;x<length[1];x++){
  124.                         b[x+deltax[1]][layer].setBackground(Color.BLUE);
  125.                         }
  126.         }
  127.  
  128.         @Override
  129.         public void keyPressed(KeyEvent e) {
  130.                 if (e.getKeyCode() == KeyEvent.VK_SPACE){
  131.                         press = true;
  132.                         }
  133.                
  134.         }
  135.  
  136.         @Override
  137.         public void keyReleased(KeyEvent arg0) {
  138.                 // TODO Auto-generated method stub
  139.                
  140.         }
  141.  
  142.         @Override
  143.         public void keyTyped(KeyEvent arg0) {
  144.                 // TODO Auto-generated method stub
  145.                
  146.         }
  147. }