![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2006
Сообщений: 30
|
У меня есть поле 6Х6 клеток или масив клеток (nXn в идеале) и мне нужно на нем розместить 4 разных клипа (М в идеале) случайным образом да так чтобы они не соприкасались друг з другом ни по строчка ни по колонкам. Это можно зделать тупо, а можна и елегантно
. Помогите зделать елегантно. |
|
|||||
|
ветеран форума
|
А что для тебя есть тупо, что элегантно?
Первое, что приходит в голову, это рэндом через массивы [1, 2, ... n] сначала по горизонтали, потом по вертикали, из которых по мере установки клипа убираются неподходящие элементы... |
|
|||||
|
Регистрация: Aug 2006
Сообщений: 30
|
2 DarkLight. Мне тоже это первое в голову пришло. Но дело в том что их должно быть определеннре количество 9 одного типа 9 другого и так далее. Тоесть поле 6*6 = 36, а обектов 4 и по 9 каждого тоже 36.
|
|
|||||
|
ветеран форума
|
А в чем проблема? Восстанавливаем массивы для каждого нового типа объектов, но уже без учета занятых клеток...
|
|
|||||
|
[+ 1.11 27.03.2006]
|
Если решать в общем виде (поле nXn и объектов в сумме M), всегда ли n*n=M? вот в чем вопрос... или их всегда 36? Ну короче всегда ли поле будет полностью заполнено объектами?
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 30
|
2 Snakesdeign. Да поле должно быть всегда заполненно и обектов должно быит равное количество. Но проще решить пока задачу дл 6х6 и типов обектов 4 (36/4 = 9)
|
|
|||||
|
[+ 1.11 27.03.2006]
|
ну... чисто алгоритм без кода будет я думаю такой... создаем двумерный массив 6 на 6, обнуляем его. Делаем цикл, пока хотя бы один элемент = 0, а внутри цикла ходим по горизонтали и вертикали и вставляем объекты, учитывая что они не должны соприкасаться, это я думаю не очень сложно... если посидеть, то и код можно придумать...
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 30
|
спасибо, у меня в принципе похожие мысли но как заставить положить ровно по 9 кождого обекта?
|
|
|||||
|
[+ 1.11 27.03.2006]
|
вложенным циклом думаю... while i<>9... а там в нем проверяем все, если например в текущюю ячейку ниче поставить не получится (занята например), то i не получает инкремент, а если вставляем, то получает... ну это так навскидку.. не уверен точно как это все будет выглядеть
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 30
|
насколько я понял идею, должно быить 4 цикла или 4 масива для 4 типов обектов
|
![]() |
![]() |
Часовой пояс GMT +4, время: 09:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|