Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package minesweeper;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import javax.swing.ImageIcon;
- import javax.swing.JButton;
- public class ControllerMouse extends MouseAdapter{
- private View view;
- public int value;
- public ControllerMouse(View view){
- this.view = view;
- value = this.view.grid.mine;
- }
- public int cnt = 0;
- public void mousePressed(MouseEvent e) {
- JButton source = (JButton) e.getSource();
- if(e.getButton() == MouseEvent.BUTTON1){
- 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()){
- view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].open = true;
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.OPEN);
- if(view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].isMine()){
- view.resetButton.setIcon(Images.FACE_LOST);
- view.grid.totalExplosion();
- for(int i = 0; i < view.grid.ROW; i++)
- for(int j = 0; j < view.grid.COLUMN; j++)
- if(view.grid.grid[i][j].isMine()){
- //view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.MINE_EXPLODED);
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.MINE);
- view.cellForground[i][j].setIcon(Images.MINE);
- }
- }
- else{
- if(view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].numMine > 0){
- int n = view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].numMine;
- switch(n){
- case 1:
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.ONE);
- break;
- case 2:
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.TWO);
- break;
- case 3:
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.THREE);
- break;
- case 4:
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.FOUR);
- break;
- case 5:
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.FIVE);
- break;
- case 6:
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.SIX);
- break;
- case 7:
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.SEVEN);
- break;
- case 8:
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.EIGHT);
- break;
- default:
- break;
- }
- }
- else{
- view.grid.recursiveDiscovery(source.getX()/view.DIM_CELL, source.getY()/view.DIM_CELL);
- for(int i = 0; i < view.grid.ROW; i++)
- for(int j = 0; j < view.grid.COLUMN; j++)
- if(view.grid.grid[i][j].isOpen() && !view.grid.grid[i][j].isMine()){
- int n = view.grid.grid[i][j].numMine;
- switch(n){
- case 0:
- view.cellForground[i][j].setIcon(Images.OPEN);
- break;
- case 1:
- view.cellForground[i][j].setIcon(Images.ONE);
- break;
- case 2:
- view.cellForground[i][j].setIcon(Images.TWO);
- break;
- case 3:
- view.cellForground[i][j].setIcon(Images.THREE);
- break;
- case 4:
- view.cellForground[i][j].setIcon(Images.FOUR);
- break;
- case 5:
- view.cellForground[i][j].setIcon(Images.FIVE);
- break;
- case 6:
- view.cellForground[i][j].setIcon(Images.SIX);
- break;
- case 7:
- view.cellForground[i][j].setIcon(Images.SEVEN);
- break;
- case 8:
- view.cellForground[i][j].setIcon(Images.EIGHT);
- break;
- default:
- break;
- }
- }
- }
- }
- }
- }
- else if (e.getButton() == MouseEvent.BUTTON3){
- if(!view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].isOpen()){
- if(!view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].isFlag() && cnt < view.grid.mine){
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.FLAG);
- view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].flag = true;
- cnt++;
- value--;
- if(value < 10)
- View.numberMine.setIcon(new ImageIcon(View.class.getResource("/Images/timer_0.gif")));
- ControllerMenu.setNumberMine(value);
- }
- else if(view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].isFlag()){
- view.cellForground[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].setIcon(Images.CLOSE);
- view.grid.grid[source.getX()/view.DIM_CELL][source.getY()/view.DIM_CELL].flag = false;
- cnt--;
- value++;
- if(value < 10)
- View.numberMine.setIcon(new ImageIcon(View.class.getResource("/Images/timer_0.gif")));
- ControllerMenu.setNumberMine(value);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement