Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- // if (Math.abs(buffer.getIndex() - b.getIndex())==1 && (Math.abs(buffer.getRow() - b.getRow())==1))
- /**
- * Created by Максим on 08.03.2016.
- */
- public class EmtyFieldHandler extends MouseAdapter {
- private Field b;
- static public Field buffer;
- public EmtyFieldHandler(Field b) {
- this.b = b;
- }
- boolean isMovePossible(Field buffer, Field b)
- {
- return (buffer.type==1)&&((buffer.getIndex() == b.getIndex() + 1 && buffer.getRow() == b.getRow() - 1)
- || (buffer.getIndex() == b.getIndex() - 1 && buffer.getRow() == b.getRow() - 1))||
- ((buffer.type==2)&&((buffer.getIndex() == b.getIndex() + 1 && buffer.getRow() == b.getRow() + 1)
- || (buffer.getIndex() == b.getIndex() - 1 && buffer.getRow() == b.getRow() + 1)));
- }
- boolean isHitPossible(Field buffer, Field b) {
- boolean bool=false;
- for(Field e: Board.fields) {
- if (buffer.type == 1)
- if ((Math.abs(buffer.getIndex() - b.getIndex()) == 2
- && Math.abs(buffer.getRow() - b.getRow()) == 2))
- if ((e.getIndex() == (buffer.getIndex() + b.getIndex()) / 2)
- && (e.getRow() == (buffer.getRow() + b.getRow()) / 2) && e.type == 2)
- bool=true;
- if (buffer.type == 2)
- if ((Math.abs(buffer.getIndex() - b.getIndex()) == 2
- && Math.abs(buffer.getRow() - b.getRow()) == 2))
- if ((e.getIndex() == (buffer.getIndex() + b.getIndex()) / 2)
- && (e.getRow() == (buffer.getRow() + b.getRow()) / 2) && e.type == 1)
- bool=true;
- }
- return bool;
- }
- void swapFields(Field buffer, Field b) {
- int x = b.getIndex();
- int y = b.getRow();
- b.setIndex(buffer.getIndex());
- b.setRow(buffer.getRow());
- buffer.setIndex(x);
- buffer.setRow(y);
- //меняем расположение на доске
- Point p1 = b.getLocation();
- b.setLocation(buffer.getLocation());
- buffer.setLocation(p1);
- buffer.setBackground(Field.bgDark);
- b.setBackground(Field.bgDark);
- buffer = null;
- }
- @Override
- public void mouseClicked(MouseEvent e) {
- if(buffer!=null) {
- if(isMovePossible(buffer,b))
- {
- swapFields(buffer,b);
- }
- else if(isHitPossible(buffer,b)) {
- for(Field field: Board.fields)
- if (((field.getIndex() == (buffer.getIndex() + b.getIndex()) / 2)
- && (field.getRow() == (buffer.getRow() + b.getRow()) / 2))) {
- field.type = 0;
- field.setIcon(null);
- }
- //swapFields(buffer,b);
- }
- else JOptionPane.showMessageDialog(null, "НЕДОПУСТИМЫЙ ХОД");
- }
- else JOptionPane.showMessageDialog(null, "ВЫБЕРИТЕ ШАШКУ");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment