function rand(min, max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function maxArray(array ){
return Math.max.apply( Math, array );
}
function generate(){
var size, margins, level; //размер блока с числом, отступы между блоками, уровень
var margins = [];
level=10; //уровень
for(var i = level;i<level+level+1;i++){ //заносим сгенерированые отступы в массив
margins.push(rand(1,300));
}
for(var i = 0; i<margins.length;i++){ //сравниваем дабы избежать пересечений
if(maxArray(margins)==margins[0]){
margins.reverse();
}
var m =maxArray(margins)-margins[i];
if(m<=10){
$("#debug").html('Результат: блоки пересекутся;<br>Максимальный отступ: '+maxArray(margins)+'; <br>Разница: '+m + '<br>Числа:' + margins);
}
else{
size = rand(50,100);
$("#game_area").append('<div class="num'+i+'">'+rand(1,10) + '</div>');
$(".num"+i).css({
'position':'absolute',
'width': size,
'height': size,
'border-radius': size+1,
'top':margins[rand(0, margins.length)],
'left':margins[rand(0, margins.length)],
'border':'1px solid #ccc'
});
$("#debug").html('Результат: блоки не пересекутся;<br>Максимальный отступ: '+maxArray(margins)+'; <br>Разница: '+m + '<br>Числа:' + margins);
}
}
}
ну вот, что-то я наговнокодил, работает наполовину. т.е сравнение идет по left(x), т.е по координате x все ок, они не пересекаются, а по координате y(top) бывает пересекаются. как поправить ума не приложу