Храню карту игры в 2-мерном массиве. Задача такая:
рандомно сгенерировать новый объект недалеко от заданной точки (вон она, красная), но на определенном расстоянии (в синей области), а именно - не ближе, чем в 4 клетках, но не дальше 7 клеток. Как создать такой сложный диапазон для рандома, я не представляю. Но пробовал делать так:
var new_y = Math.floor(Math.random() * (max_distance - max_distance * -1)) + max_distance * -1;
if (Math.abs(new_y) > min_distance) {
var new_x = Math.floor(Math.random() * (max_distance - max_distance * -1)) + max_distance * -1;
if (Math.abs(new_x) > min_distance) {
где
max_distance = 8, а
min_distance = 5. Но это не совсем удачная идея, потому что даже при 50 попытках не всегда получается выбрать точку в таком диапазоне. А использовать больше попыток не очень эффективно, как мне кажется. Как бы вы посоветовали решить эту задачу?