ModestGenius

EmptyFieldHandler

Mar 10th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.26 KB | None | 0 0
  1. package com.company;
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import java.awt.event.MouseAdapter;
  6. import java.awt.event.MouseEvent;
  7. import java.awt.event.MouseListener;
  8. // if (Math.abs(buffer.getIndex() - b.getIndex())==1 && (Math.abs(buffer.getRow() - b.getRow())==1))
  9. /**
  10.  * Created by Максим on 08.03.2016.
  11.  */
  12. public class EmtyFieldHandler extends MouseAdapter {
  13.     private Field b;
  14.     static public Field buffer;
  15.     public EmtyFieldHandler(Field b) {
  16.         this.b = b;
  17.     }
  18.     boolean isMovePossible(Field buffer, Field b)
  19.     {
  20.         return  (buffer.type==1)&&((buffer.getIndex() == b.getIndex() + 1 && buffer.getRow() == b.getRow() - 1)
  21.                 || (buffer.getIndex() == b.getIndex() - 1 && buffer.getRow() == b.getRow() - 1))||
  22.                 ((buffer.type==2)&&((buffer.getIndex() == b.getIndex() + 1 && buffer.getRow() == b.getRow() + 1)
  23.                         || (buffer.getIndex() == b.getIndex() - 1 && buffer.getRow() == b.getRow() + 1)));
  24.     }
  25.  
  26.     boolean isHitPossible(Field buffer, Field b) {
  27.         boolean bool=false;
  28.         for(Field e: Board.fields) {
  29.             if (buffer.type == 1)
  30.                 if ((Math.abs(buffer.getIndex() - b.getIndex()) == 2
  31.                         && Math.abs(buffer.getRow() - b.getRow()) == 2))
  32.                     if ((e.getIndex() == (buffer.getIndex() + b.getIndex()) / 2)
  33.                             && (e.getRow() == (buffer.getRow() + b.getRow()) / 2) && e.type == 2)
  34.                         bool=true;
  35.             if (buffer.type == 2)
  36.                 if ((Math.abs(buffer.getIndex() - b.getIndex()) == 2
  37.                         && Math.abs(buffer.getRow() - b.getRow()) == 2))
  38.                     if ((e.getIndex() == (buffer.getIndex() + b.getIndex()) / 2)
  39.                             && (e.getRow() == (buffer.getRow() + b.getRow()) / 2) && e.type == 1)
  40.                         bool=true;
  41.         }
  42.         return bool;
  43.     }
  44.  
  45.     void swapFields(Field buffer, Field b) {
  46.         int x = b.getIndex();
  47.         int y = b.getRow();
  48.         b.setIndex(buffer.getIndex());
  49.         b.setRow(buffer.getRow());
  50.         buffer.setIndex(x);
  51.         buffer.setRow(y);
  52.         //меняем расположение на доске
  53.         Point p1 = b.getLocation();
  54.         b.setLocation(buffer.getLocation());
  55.         buffer.setLocation(p1);
  56.         buffer.setBackground(Field.bgDark);
  57.         b.setBackground(Field.bgDark);
  58.         buffer = null;
  59.     }
  60.  
  61.     @Override
  62.     public void mouseClicked(MouseEvent e) {
  63.         if(buffer!=null) {
  64.             if(isMovePossible(buffer,b))
  65.             {
  66.                swapFields(buffer,b);
  67.             }
  68.             else if(isHitPossible(buffer,b)) {
  69.                 for(Field field: Board.fields)
  70.                     if (((field.getIndex() == (buffer.getIndex() + b.getIndex()) / 2)
  71.                             && (field.getRow() == (buffer.getRow() + b.getRow()) / 2))) {
  72.                         field.type = 0;
  73.                         field.setIcon(null);
  74.                     }
  75.                 //swapFields(buffer,b);
  76.  
  77.  
  78.  
  79.             }
  80.                 else JOptionPane.showMessageDialog(null, "НЕДОПУСТИМЫЙ ХОД");
  81.         }
  82.         else JOptionPane.showMessageDialog(null, "ВЫБЕРИТЕ ШАШКУ");
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment