private int[] defense() {
		int[] c = new int[2];

		// Get neighboring positions of the opponents positions
		Set<Position> neighborPos = board.getPlayerNeighbors(players[1].piece);

		// Search for possibility of opponent win in first ply
		for (Position pos : neighborPos) {
			// Add move
			board.setMove(pos.getX(), pos.getY(), players[1], true);
			players[1].addPosition(pos);

			if (board.getWinner() == players[1].piece) {
				// remove move previously placed
				board.removeMove(pos.getX(), pos.getY(), players[1]);
				players[1].removePosition(pos);

				c[0] = pos.getX();
				c[1] = pos.getY();
				return c;
			} else {
				// Search for possibility of opponent win in second ply
				for (Position posNeighbor : pos.getNeighbors()) {
					if (posNeighbor.getOwner() == null) {
						// Add move
						board.setMove(posNeighbor.getX(), posNeighbor.getY(),
								players[1], true);
						players[1].addPosition(posNeighbor);

						if (board.getWinner() == players[1].piece) {
							// remove move previously placed
							board.removeMove(posNeighbor.getX(),
									posNeighbor.getY(), players[1]);
							players[1].removePosition(posNeighbor);

							c[0] = posNeighbor.getX();
							c[1] = posNeighbor.getY();
							return c;
						}
						// remove move previously placed
						board.removeMove(posNeighbor.getX(),
								posNeighbor.getY(), players[1]);
						players[1].removePosition(posNeighbor);
					}
				}
			}
			// remove move previously placed
			board.removeMove(pos.getX(), pos.getY(), players[1]);
			players[1].removePosition(pos);
		}

		// Search for possibility of opponent win in second ply
		for (Position pos : neighborPos) {
			// Add move
			board.setMove(pos.getX(), pos.getY(), players[1], true);
			players[1].addPosition(pos);

			for (Position posNeighbor : pos.getNeighbors()) {
				if (posNeighbor.getOwner() == null) {
					// Add move
					board.setMove(posNeighbor.getX(), posNeighbor.getY(),
							players[1], true);
					players[1].addPosition(posNeighbor);

					if (board.getWinner() == players[1].piece) {
						// remove move previously placed
						board.removeMove(posNeighbor.getX(),
								posNeighbor.getY(), players[1]);
						players[1].removePosition(posNeighbor);

						c[0] = pos.getX();
						c[1] = pos.getY();
						return c;
					}
					// remove move previously placed
					board.removeMove(posNeighbor.getX(), posNeighbor.getY(),
							players[1]);
					players[1].removePosition(posNeighbor);
				}
			}

			// remove move previously placed
			board.removeMove(pos.getX(), pos.getY(), players[1]);
			players[1].removePosition(pos);
		}

		return null;
	}