public Cell moveToAttack(Cell cell) {
        ArrayList<Cell> moveableCells = this.getMoveableCells(map);

        Queue<Cell> surroundingAttackedCell = cell.getSurroundingCells(map,
                false);

        ArrayList<Cell> nextToCells = new ArrayList<Cell>();

        for (Cell c : surroundingAttackedCell) {
            if (moveableCells.contains(c)) {
                nextToCells.add(c);
            }
        }

        Cell closestCell = null;
        for (Cell c : nextToCells) {
            if (closestCell == null) {
                closestCell = c;
                // if c is closer than closestCell then swap.
            } else if (Math.abs(closestCell.getCellPosX()
                    - this.getCell().getCellPosX()) > Math
                    .abs((c.getCellPosX() - this.getCell().getCellPosX()))
                    && Math.abs(closestCell.getCellPosY()
                            - this.getCell().getCellPosY()) > Math.abs((c
                            .getCellPosY() - this.getCell().getCellPosY()))) {
                closestCell = c;
            }
        }
        return closestCell;

    }