I am making a snake game in javascript and I need a way to choose a random position for the fruit (a single number on which modulus is applied to get the x and y numbers) but the position should not overlap with positions the snake is already covering. I'm currently using recursion to do this:
function random(min = 0, max = 100, exclude = []) {
let r = Math.round(Math.random() * (max - min)) + min;
return exclude.includes(r) ? random(...arguments) : r;
}
When the snake covers a large portion of the board leaving only a few spaces for the fruit, this would take a lot of cycles to return a valid number.
Is there a better method to do this or is this method good enough?