private boolean placeUnitNearCityAt(Position p, Unit u){
        Position[] positions = makePlacementArrayWithCenter(p);

        for (Position place : positions){
            if ( !isImpassable(place) && !isOccupied(place) ){
                unitMap.put(place, u);
                notifyWorldChangeAt(place);
                return true;
            }
        }
        return false;
    }