Показать сообщение отдельно
  #28 (permalink)  
Старый 08.07.2013, 19:51
Аспирант
Отправить личное сообщение для IVAAAAN Посмотреть профиль Найти все сообщения от IVAAAAN
 
Регистрация: 04.07.2013
Сообщений: 47

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) бывает пересекаются. как поправить ума не приложу
Ответить с цитированием