Игра найти клад JavaScript

Решил написать игру "найти клад" и затем код который бы автоматически пытался найти нужную точку клада по логике, но когда запускаю код просто активируется рекурсия в которой не изменяется точка клика (а должна), в чем проблема?

var getRandomNumber = function (size) {
            return Math.floor(Math.random() * size);
        };

        var getDistance = function (event, target) {
            var diffX = event.offsetX - target.x;
            var diffY = event.offsetY - target.y;
            return Math.sqrt(diffX * diffX + diffY * diffY);
        };
        var getDistanceHint = function (distance) {
            if (distance < 10) {
                return "Оббожешься!";
            } else if (distance < 20) {
                return "Очень горячо!";
            } else if (distance < 40) {
                return "Горячо!";
            } else if (distance < 80) {
                return "Теппло!";
            } else if (distance < 160) {
                return "Холодно!";
            } else if (distance < 320) {
                return "Очень холодно!";
            } else {
                return "Замерзнешь!";
            }
        };

        var width = 400;
        var height = 400;
        var target = {
            x: getRandomNumber(width),
            y: getRandomNumber(height),
        };

        var clicks = 0;
        
        $("#map").click(function (event) {
            console.log("1");
            var map = document.getElementById("map");

            clicks++;
            var distance = getDistance(event, target);
            var distanceHint = getDistanceHint(distance);
            $("#distance").text(distanceHint);
            let figuringDot = function (map, event, numMap, num) {
                console.log("+++++++++++++++++++++");
                let event_ = new MouseEvent("click", {
                    clientX: Math.floor(event.clientX),
                    clientY: Math.floor(event.clientY),
                });
                if (Math.floor(event.clientX) < numMap) {
                    event_.clientX += num;
                } else {
                    event_.clientX -= num;
                }

                if (Math.floor(event.clientY) < numMap) {
                    event_.clientY += num;
                } else {
                    event_.clientY -= num;
                }
                console.log(event_);
                map.dispatchEvent(event_);
            };

            if (distanceHint == "Замерзнешь!") {
                figuringDot(map, event, 400, 160);
            } else if (distanceHint == "Очень холодно!") {
                figuringDot(map, event, 200, 80);
            } else if (distanceHint == "Холодно!") {
                figuringDot(map, event, 100, 40);
            } else if (distanceHint == "Тепло!") {
                figuringDot(map, event, 50, 20);
            } else if (distanceHint == "Горячо!") {
                figuringDot(map, event, 25, 10);
            } else if (distanceHint == "Очень горячо!") {
                figuringDot(map, event, 12, 5);
            } else if (distanceHint == "Оббожешься!") {
                figuringDot(map, event, 6, 2);
            }

            console.log(Math.floor(distance));
            console.log(distanceHint);
            console.log("--------------------");
            if (distance < 8) {
                alert("Клад найден! Сделано кликов: " + clicks);
                return;
            }
        });

Ответы (0 шт):