Игра найти клад 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;
}
});