Advertisement
Guest User

ControllerMouse.java

a guest
Jun 29th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.69 KB | None | 0 0
  1. package minesweeper;
  2.  
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5.  
  6. import javax.swing.ImageIcon;
  7. import javax.swing.JButton;
  8.  
  9.  
  10. public class ControllerMouse extends MouseAdapter{
  11.    
  12.     private View view;
  13.     public int value;
  14.    
  15.     public ControllerMouse(View view){
  16.         this.view = view;
  17.         value = this.view.grid.mine;
  18.     }
  19.    
  20.     public int cnt = 0;
  21.    
  22.    
  23.     public void mousePressed(MouseEvent e) {
  24.        
  25.         JButton source = (JButton) e.getSource();
  26.        
  27.         if(e.getButton() == MouseEvent.BUTTON1){
  28.             if(!view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].isOpen() && !view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].isFlag()){
  29.                 view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].open = true;
  30.                 view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.OPEN);
  31.                        
  32.                 if(view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].isMine()){
  33.                    
  34.                     view.resetButton.setIcon(Images.FACE_LOST);
  35.  
  36.                     view.grid.totalExplosion();
  37.                     for(int i = 0; i < view.grid.ROW; i++)
  38.                         for(int j = 0; j < view.grid.COLUMN; j++)
  39.                             if(view.grid.grid[i][j].isMine()){
  40.                                 //view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.MINE_EXPLODED);
  41.                                 view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.MINE);
  42.                                 view.cellForground[i][j].setIcon(Images.MINE);
  43.                             }
  44.                 }
  45.                 else{
  46.                            
  47.                     if(view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].numMine > 0){
  48.                        
  49.                         int n = view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].numMine;
  50.                        
  51.                         switch(n){
  52.                             case 1:
  53.                                 view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.ONE);
  54.                                 break;
  55.                            
  56.                             case 2:
  57.                                 view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.TWO);
  58.                                 break;
  59.                                
  60.                             case 3:
  61.                                 view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.THREE);
  62.                                 break;
  63.                                
  64.                             case 4:
  65.                                 view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.FOUR);
  66.                                 break;
  67.                                
  68.                             case 5:
  69.                                 view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.FIVE);
  70.                                 break;
  71.                            
  72.                             case 6:
  73.                                 view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.SIX);
  74.                                 break;
  75.                                
  76.                             case 7:
  77.                                 view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.SEVEN);
  78.                                 break;
  79.                                
  80.                             case 8:
  81.                                 view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.EIGHT);
  82.                                 break;
  83.                            
  84.                             default:
  85.                                 break;
  86.                         }  
  87.                     }
  88.                     else{
  89.                        
  90.                         view.grid.recursiveDiscovery(source.getX()/view.DIM_CELL, source.getY()/view.DIM_CELL);
  91.                    
  92.                         for(int i = 0; i < view.grid.ROW; i++)
  93.                             for(int j = 0; j < view.grid.COLUMN; j++)
  94.                                 if(view.grid.grid[i][j].isOpen() && !view.grid.grid[i][j].isMine()){
  95.                                     int n = view.grid.grid[i][j].numMine;
  96.                                            
  97.                                     switch(n){
  98.                                         case 0:
  99.                                             view.cellForground[i][j].setIcon(Images.OPEN);
  100.                                             break;
  101.                                            
  102.                                         case 1:
  103.                                             view.cellForground[i][j].setIcon(Images.ONE);
  104.                                             break;
  105.                                        
  106.                                         case 2:
  107.                                             view.cellForground[i][j].setIcon(Images.TWO);
  108.                                             break;
  109.                                            
  110.                                         case 3:
  111.                                             view.cellForground[i][j].setIcon(Images.THREE);
  112.                                             break;
  113.                                            
  114.                                         case 4:
  115.                                             view.cellForground[i][j].setIcon(Images.FOUR);
  116.                                             break;
  117.                                            
  118.                                         case 5:
  119.                                             view.cellForground[i][j].setIcon(Images.FIVE);
  120.                                             break;
  121.                                        
  122.                                         case 6:
  123.                                             view.cellForground[i][j].setIcon(Images.SIX);
  124.                                             break;
  125.                                            
  126.                                         case 7:
  127.                                             view.cellForground[i][j].setIcon(Images.SEVEN);
  128.                                             break;
  129.                                            
  130.                                         case 8:
  131.                                             view.cellForground[i][j].setIcon(Images.EIGHT);
  132.                                             break;
  133.                                        
  134.                                         default:
  135.                                             break;
  136.                                     }
  137.                                 }
  138.                     }
  139.                 }
  140.             }
  141.         }
  142.         else if (e.getButton() == MouseEvent.BUTTON3){
  143.            
  144.             if(!view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].isOpen()){
  145.                
  146.                 if(!view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].isFlag() && cnt < view.grid.mine){
  147.                     view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.FLAG);
  148.                     view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].flag = true;
  149.                     cnt++;
  150.                     value--;
  151.                    
  152.                     if(value < 10)
  153.                         View.numberMine.setIcon(new ImageIcon(View.class.getResource("/Images/timer_0.gif")));
  154.                    
  155.                     ControllerMenu.setNumberMine(value);
  156.                 }
  157.                 else if(view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].isFlag()){
  158.                     view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.CLOSE);
  159.                     view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].flag = false;
  160.                     cnt--;
  161.                     value++;
  162.                    
  163.                     if(value < 10)
  164.                         View.numberMine.setIcon(new ImageIcon(View.class.getResource("/Images/timer_0.gif")));
  165.                    
  166.                     ControllerMenu.setNumberMine(value);
  167.                 }
  168.             }
  169.         }
  170.      }
  171.    
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement