Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 08.07.2013, 16:05
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

вы хотите реализовать такой алгоритм не парясь)) а так как вы хотите придется по парится.. либо заплатить за работу
Ответить с цитированием
  #22 (permalink)  
Старый 08.07.2013, 16:06
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

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

я же код не прошу, просто подскажите как вычислить можно))
Ответить с цитированием
  #24 (permalink)  
Старый 08.07.2013, 16:19
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

да тут сразу в голову и не придет как это все реализовать. написать можно, но это все таки дело времени. и я думаю что за даром вам мало кто поможет.. может и найдутся добрые люди))
Ответить с цитированием
  #25 (permalink)  
Старый 08.07.2013, 16:23
Аспирант
Отправить личное сообщение для IVAAAAN Посмотреть профиль Найти все сообщения от IVAAAAN
 
Регистрация: 04.07.2013
Сообщений: 47

Сообщение от skrudjmakdak Посмотреть сообщение
да тут сразу в голову и не придет как это все реализовать. написать можно, но это все таки дело времени. и я думаю что за даром вам мало кто поможет.. может и найдутся добрые люди))
ладно, буду думать сам. если додумаюсь, то сюда выложу, может пригодиться кому-то
Ответить с цитированием
  #26 (permalink)  
Старый 08.07.2013, 16:26
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Перед генерацией нового блока, циклом пробегайтесь по всем блокам, вычисляйте их позицию, ширину, высоту, составьте из этого математическое выражение и если новый блок никак не равен позициям других блоков, то добавляйте его, а если равен - то добавляйте его сместив на другие свободные координаты.
Ответить с цитированием
  #27 (permalink)  
Старый 08.07.2013, 16:27
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка блоков по параметрам webmanss Элементы интерфейса 17 18.06.2016 20:04
Переключение блоков. lon Элементы интерфейса 7 03.07.2013 09:08
Генерация поля из 8000 картинок на стороне клиента VS генерация картинки на сервере xintrea Events/DOM/Window 2 25.06.2013 20:10
Печать невидимых блоков mixeeff Events/DOM/Window 7 11.03.2009 11:41