Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.awt.*;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.util.*;
- import static com.company.Board.fields;
- import static com.company.EmtyFieldHandler.*;
- /**
- * Created by Максим on 08.03.2016.
- */
- public class FieldHandler extends MouseAdapter {
- private Field checker;
- static Tree.Node root;
- static Tree tree;
- public FieldHandler(Field checker) {
- this.checker = checker;
- }
- /*void showPossibleMoves() {
- if(buffer.type==1) {
- if (fields[buffer.getIndex() + 1][buffer.getRow() + 1].type == 0)
- fields[buffer.getIndex() + 1][buffer.getRow() + 1].setBackground(Color.green);
- if(fields[buffer.getIndex() - 1][buffer.getRow() + 1].type == 0)
- fields[buffer.getIndex() - 1][buffer.getRow() + 1].setBackground(Color.green);
- }
- if(buffer.type==2) {
- if (fields[buffer.getIndex() + 1][buffer.getRow() - 1].type == 0)
- fields[buffer.getIndex() + 1][buffer.getRow() - 1].setBackground(Color.green);
- if(fields[buffer.getIndex() - 1][buffer.getRow() - 1].type == 0)
- fields[buffer.getIndex() - 1][buffer.getRow() - 1].setBackground(Color.green);
- }
- }*/
- void addNodeIntoTree(Field buff, Tree.Node root) {
- System.out.println(buff.getIndex()+""+buff.getRow()+ " type: "+buff.type);
- //System.out.println("buff.type == 0 and "+ pressedChecker.getIndex()+""+pressedChecker.getRow()+ " type: "+pressedChecker.type);
- /*if (pressedChecker.type == 1) {
- System.out.println("pressedChecker.type == 1 and "+Board.fields[(pressedChecker.getIndex() + buff.getIndex()) / 2][(pressedChecker.getRow() + buff.getRow()) / 2].getIndex()
- +""+Board.fields[(pressedChecker.getIndex() + buff.getIndex()) / 2][(pressedChecker.getRow() + buff.getRow()) / 2].getRow()
- + " type: "+Board.fields[(pressedChecker.getIndex() + buff.getIndex()) / 2][(pressedChecker.getRow() + buff.getRow()) / 2].type);*/
- if (Board.fields[(pressedChecker.getIndex() + buff.getIndex()) / 2][(pressedChecker.getRow() + buff.getRow()) / 2].type!=pressedChecker.type&&
- Board.fields[(pressedChecker.getIndex() + buff.getIndex()) / 2][(pressedChecker.getRow() + buff.getRow()) / 2].type!=0) {
- Tree.Node node = new Tree.Node(fields[buff.getIndex()][buff.getRow()]);
- root.addChildren(node);
- //buff.type = 1;
- Field buffer = pressedChecker;
- buff.type = pressedChecker.type;
- pressedChecker = buff;
- constraintTree(node);
- pressedChecker = buffer;
- buff.type = 0;
- }
- /*if (pressedChecker.type == 2) {
- System.out.println("pressedChecker.type == 2 and "+Board.fields[(pressedChecker.getIndex() + buff.getIndex()) / 2][(pressedChecker.getRow() + buff.getRow()) / 2].getIndex()
- +""+Board.fields[(pressedChecker.getIndex() + buff.getIndex()) / 2][(pressedChecker.getRow() + buff.getRow()) / 2].getRow()
- + " type: "+Board.fields[(pressedChecker.getIndex() + buff.getIndex()) / 2][(pressedChecker.getRow() + buff.getRow()) / 2].type);
- if (Board.fields[(pressedChecker.getIndex() + buff.getIndex()) / 2][(pressedChecker.getRow() + buff.getRow()) / 2].type!=pressedChecker.type&&
- Board.fields[(pressedChecker.getIndex() + buff.getIndex()) / 2][(pressedChecker.getRow() + buff.getRow()) / 2].type!=0) {
- Tree.Node node = new Tree.Node(fields[buff.getIndex()][buff.getRow()]);
- root.addChildren(node);
- //buff.type = 2;
- pressedChecker = buff;
- pressedChecker.type=2;
- constraintTree(node);
- buff.type = 0;
- }*/
- }
- void constraintTree(Tree.Node root) {
- Field buff;
- System.out.println("pressedChecker: "+pressedChecker.getIndex()+" "+pressedChecker.getRow());
- if(pressedChecker.getIndex()+2<8 && pressedChecker.getRow()+2<8 && fields[pressedChecker.getIndex()+2][pressedChecker.getRow()+2].type==0) {
- buff = fields[pressedChecker.getIndex()+2][pressedChecker.getRow()+2];
- addNodeIntoTree(buff,root);
- }
- if(pressedChecker.getIndex()+2<8 && pressedChecker.getRow()-2>=0 && fields[pressedChecker.getIndex()+2][pressedChecker.getRow()-2].type==0) {
- buff = fields[pressedChecker.getIndex()+2][pressedChecker.getRow()-2] ;
- addNodeIntoTree(buff,root);
- }
- if(pressedChecker.getIndex()-2>=0 && pressedChecker.getRow()+2<8 && fields[pressedChecker.getIndex()-2][pressedChecker.getRow()+2].type==0) {
- buff = fields[pressedChecker.getIndex()-2][pressedChecker.getRow()+2];
- addNodeIntoTree(buff,root);
- }
- if(pressedChecker.getIndex()-2>=0 && pressedChecker.getRow()-2>=0 && fields[pressedChecker.getIndex()-2][pressedChecker.getRow()-2].type==0) {
- System.out.println("Я ЗДЕСЯ!!!");
- buff = fields[pressedChecker.getIndex()-2][pressedChecker.getRow()-2];
- addNodeIntoTree(buff,root);
- }
- pressedChecker = checker;
- }
- public static void showPossibleHits(Tree.Node parentNode, Color color){
- ArrayList<Tree.Node<Field>> list = parentNode.getChildrens();
- if(!list.isEmpty())
- {
- System.out.println("СПИСКОК ПОТОМКОВ ПОЛЯ " + parentNode.getField().getIndex()+parentNode.getField().getRow());
- for(Tree.Node<Field> childrenNode: list ) {
- System.out.println(childrenNode.getField().getIndex() +""+ childrenNode.getField().getRow());
- childrenNode.getField().setBackground(color);
- showPossibleHits(childrenNode,color);
- }
- System.out.println("_________________");
- }
- }
- @Override
- public void mouseClicked(MouseEvent e) {
- if(pressedChecker==null) {
- checker.setBackground(Color.yellow);
- pressedChecker=checker;
- }
- else
- {
- showPossibleHits(FieldHandler.tree.getRoot(),Field.bgDark);
- pressedChecker.setBackground(Field.bgDark);
- checker.setBackground(Color.yellow);
- pressedChecker=checker;
- }
- root = new Tree.Node(fields[pressedChecker.getIndex()][pressedChecker.getRow()]);
- tree = new Tree(root);
- constraintTree(tree.getRoot());
- pressedChecker=checker;
- showPossibleHits(tree.getRoot(),Color.BLUE);
- //showPossibleMoves();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment