public void findNearestFreeSpot()
    {
        if (getEntities() == null)  return;

        Deque<Double> xQueue = new ArrayDeque<>();
        Deque<Double> yQueue = new ArrayDeque<>();
        
        List<Double> usedX = new ArrayList<>();
        List<Double> usedY = new ArrayList<>();
        
        enqueueCoordinate(x, y, xQueue, yQueue);
        
        while (!xQueue.isEmpty())
        {
            dequeueCoordinate(xQueue, yQueue);
            
            if (isColliding())
            {
                getNearbyPositions(xQueue, yQueue, usedX, usedY);
                markCurrentCoordinateAsUsed(usedX, usedY);
            }
            else    return;
        }
    }