/** is there a foe of a at cell c? */ public boolean matches(Cell c, Ant a) { return super.matches(c, a) && c.hasAnt() && (c.getAnt().getColor() != a.getColor()); }
public void makeBoard(Cell[][] cells) { if (stageGridPane != null) { // Устанавливаем размер клетки stageGridPane.getColumnConstraints().add(new ColumnConstraints(10)); stageGridPane.getRowConstraints().add(new RowConstraints(10)); if (cells[0][0] == null) { fillCircuit(); } // Заполняем массив клеток основного поля и выводим его на экран for (int i = 1; i < cells.length - 1; i++) { stageGridPane.addRow(i); for (int j = 1; j < cells[0].length - 1; j++) { stageGridPane.addColumn(j); Cell tempRect = new Cell(10, 10, Color.WHITE, i, j); if (cells[i][j] == null) { stageGridPane.add(cells[i][j] = tempRect, i, j); } else { if (cells[i][j].isRoad) { cells[i][j].setFill(Color.BLUE); } } cells[i][j].setStroke(Color.BLACK); cells[i][j].setOnMouseClicked( t -> { switch (CellType.getValue()) { case "Wall": if (tempRect.getFill() == Color.BLACK) { tempRect.setFill(Color.WHITE); tempRect.isBlocked = false; } else { tempRect.setFill(Color.BLACK); tempRect.isBlocked = true; } break; case "Start": if (tempRect.getFill() == Color.GREEN) { tempRect.setFill(Color.WHITE); start = null; } else if (start == null) { tempRect.setFill(Color.GREEN); start = tempRect; } break; case "End": if (tempRect.getFill() == Color.RED) { tempRect.setFill(Color.WHITE); finish = null; } else if (finish == null) { tempRect.setFill(Color.RED); finish = tempRect; } break; } }); } } } else { System.err.print("stageGridPane is null"); } }