Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.08.2006, 16:40
swfSlavik вне форума Посмотреть профиль Отправить личное сообщение для swfSlavik Найти все сообщения от swfSlavik
  № 1  
Ответить с цитированием
swfSlavik
 
Аватар для swfSlavik

Регистрация: Aug 2006
Сообщений: 30
По умолчанию Алгоритм расположения объектов

У меня есть поле 6Х6 клеток или масив клеток (nXn в идеале) и мне нужно на нем розместить 4 разных клипа (М в идеале) случайным образом да так чтобы они не соприкасались друг з другом ни по строчка ни по колонкам. Это можно зделать тупо, а можна и елегантно . Помогите зделать елегантно.

Старый 19.08.2006, 16:45
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
А что для тебя есть тупо, что элегантно?
Первое, что приходит в голову, это рэндом через массивы [1, 2, ... n] сначала по горизонтали, потом по вертикали, из которых по мере установки клипа убираются неподходящие элементы...

Старый 19.08.2006, 16:55
swfSlavik вне форума Посмотреть профиль Отправить личное сообщение для swfSlavik Найти все сообщения от swfSlavik
  № 3  
Ответить с цитированием
swfSlavik
 
Аватар для swfSlavik

Регистрация: Aug 2006
Сообщений: 30
2 DarkLight. Мне тоже это первое в голову пришло. Но дело в том что их должно быть определеннре количество 9 одного типа 9 другого и так далее. Тоесть поле 6*6 = 36, а обектов 4 и по 9 каждого тоже 36.

Старый 19.08.2006, 17:05
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 4  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
А в чем проблема? Восстанавливаем массивы для каждого нового типа объектов, но уже без учета занятых клеток...

Старый 19.08.2006, 17:07
Snakesdesign вне форума Посмотреть профиль Отправить личное сообщение для Snakesdesign Найти все сообщения от Snakesdesign
  № 5  
Ответить с цитированием
Snakesdesign
[+ 1.11 27.03.2006]
 
Аватар для Snakesdesign

Регистрация: Jun 2004
Адрес: russia
Сообщений: 80
Отправить сообщение для Snakesdesign с помощью ICQ
Если решать в общем виде (поле nXn и объектов в сумме M), всегда ли n*n=M? вот в чем вопрос... или их всегда 36? Ну короче всегда ли поле будет полностью заполнено объектами?

Старый 19.08.2006, 17:27
swfSlavik вне форума Посмотреть профиль Отправить личное сообщение для swfSlavik Найти все сообщения от swfSlavik
  № 6  
Ответить с цитированием
swfSlavik
 
Аватар для swfSlavik

Регистрация: Aug 2006
Сообщений: 30
2 Snakesdeign. Да поле должно быть всегда заполненно и обектов должно быит равное количество. Но проще решить пока задачу дл 6х6 и типов обектов 4 (36/4 = 9)

Старый 19.08.2006, 17:48
Snakesdesign вне форума Посмотреть профиль Отправить личное сообщение для Snakesdesign Найти все сообщения от Snakesdesign
  № 7  
Ответить с цитированием
Snakesdesign
[+ 1.11 27.03.2006]
 
Аватар для Snakesdesign

Регистрация: Jun 2004
Адрес: russia
Сообщений: 80
Отправить сообщение для Snakesdesign с помощью ICQ
ну... чисто алгоритм без кода будет я думаю такой... создаем двумерный массив 6 на 6, обнуляем его. Делаем цикл, пока хотя бы один элемент = 0, а внутри цикла ходим по горизонтали и вертикали и вставляем объекты, учитывая что они не должны соприкасаться, это я думаю не очень сложно... если посидеть, то и код можно придумать...

Старый 19.08.2006, 17:58
swfSlavik вне форума Посмотреть профиль Отправить личное сообщение для swfSlavik Найти все сообщения от swfSlavik
  № 8  
Ответить с цитированием
swfSlavik
 
Аватар для swfSlavik

Регистрация: Aug 2006
Сообщений: 30
спасибо, у меня в принципе похожие мысли но как заставить положить ровно по 9 кождого обекта?

Старый 19.08.2006, 18:03
Snakesdesign вне форума Посмотреть профиль Отправить личное сообщение для Snakesdesign Найти все сообщения от Snakesdesign
  № 9  
Ответить с цитированием
Snakesdesign
[+ 1.11 27.03.2006]
 
Аватар для Snakesdesign

Регистрация: Jun 2004
Адрес: russia
Сообщений: 80
Отправить сообщение для Snakesdesign с помощью ICQ
вложенным циклом думаю... while i<>9... а там в нем проверяем все, если например в текущюю ячейку ниче поставить не получится (занята например), то i не получает инкремент, а если вставляем, то получает... ну это так навскидку.. не уверен точно как это все будет выглядеть

Старый 19.08.2006, 18:32
swfSlavik вне форума Посмотреть профиль Отправить личное сообщение для swfSlavik Найти все сообщения от swfSlavik
  № 10  
Ответить с цитированием
swfSlavik
 
Аватар для swfSlavik

Регистрация: Aug 2006
Сообщений: 30
насколько я понял идею, должно быить 4 цикла или 4 масива для 4 типов обектов

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:46.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.