Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Рендомный набор команд


Автор: Lois 28.1.2014, 11:33
У меня есть отличная идея учебной или игровой программы - создание мира с нуля. Я её описал и родилась новая идея- а что если сделать программу, где команды ставятся случайным образом.
В общем необходима любая информация по этому поводу. Понятно, что некоторые команды должны быть чётко зафиксированы, скажем end . Вопрос вот какой- просто если ради интереса придумать программу из 10 команд, связанных друг с другом, чтобы они менялись произвольным образом и программа при этом что-то выполняла, скажем рисовала бы фракталы. Идея с моей точки зрения очень интересная, учитывая то, что это резко бы увеличило разнообразие программы.

Автор: Pavia 28.1.2014, 20:38
Есть такая вещь как процедурная генерация текстур. Но они не так развиты как программы говорилки.

Делайте 3-х уравниваю генерацию. 
1. Уровень низший. Фиксированные элементарные команды.
2. Модификации и модели поведения. С наборами параметров.
3. Модели не случайного выбора моделей из группы 2 и их параметров. 

Возможно модификации относятся к 1 уровню.

Конечно на 2 и 3 должны быть случайные элементы. Но случайность это только часть.

А да модели 2 и 3 надо применять не обязательно быть глобальные  они  должны носить локальный характер.

В качестве моделей 3 уровня можно выбрать аналоги ГА.  Скрещивание, отсеивание(естественный отбор). Мутации. 


В качестве моделей 2 уровня. Это фрактальные модели, модели построения облаков, молний. Диаграммы Вороненного.  Или незнаю что у вас там будет. Для фантазии можно посмотреть на модели классификаций: объединение, разрез графов, живые линии. Алгоритм Астра.  
Более частное размытие, границы, яркость, контрастность, гамма, фильтрация.

В качестве уровня 1. Генерации или примитивные модели которые могут что-то породить. Случайные точки разброс синусы, линии. 


Постарался изложить абстрактно.

Автор: Lois 28.1.2014, 22:01
Цитата(Pavia @  28.1.2014,  20:38 Найти цитируемый пост)
Есть такая вещь как процедурная генерация текстур. Но они не так развиты как программы говорилки.


а что за программы говорилки ? Можно пару ссылок?
Но вообще я имел ввиду случайный набор команд в программе. Может я чего не понял, но Вы говорите о более внешнем аспекте.

Автор: Romikgy 28.1.2014, 23:01
а я не понял смысла этой программы((

Автор: Lois 29.1.2014, 00:23
Цитата(Romikgy @  28.1.2014,  23:01 Найти цитируемый пост)
а я не понял смысла этой программы(( 


просто пришла в голову такая идея. А идея как я считаю уникальная. Пока смысла возможно и нет, а дальше посмотрим. Всё зависит от того, насколько это выполнимо.
Эта идея может сочетаться вот с такой идеей.

Создание мира с нуля
Меня интересует сейчас моя идея программы- создание мира с нуля. То есть из Хаоса человек сам создаёт оригинальный мир. Основной элемент программы- генератор псевдослучайных чисел- рендом. Программа управляется голосом. То есть человек голосом отдаёт приказы программе и звуковые волны, переведённые в формулы оказывают влияние на Хаос. Хаос- это база данных, где смешаны вещи в разной форме, скажем слова, звуки, картинки переведённые в такую форму, чтобы можно было на них влиять с помощью этих формул.

В программе постоянно работает рендом, сочетая случайным образом разные вещи. На данном этапе самое сложное разработать принцип, к чему приводит их сочетание и как реализовать сам принцип сочетаний вещей, при том, чтобы сохранить их первоначальные свойства. Например, человек говорит- Да будет Свет. Автоматически производится формула основанная на вибрациях голоса и весь Хаос пропускается через эту формулу. Затем , скажем человек говорит, Отделить Свет от Тьмы. Опять тот же процесс. Причём , ничего программировать не надо, чтобы программа скажем различала смысл фразы. Просто перевод вибраций в формулу и всё. Здесь есть очень тонкий принцип, неизвестный непосвящённым. В результате таких приказов выстраивается совершенно оригинальный мир, так как разные люди будут давать разные приказы. А вот в какой форме будет этот мир, пока не ясно.... . Если делать несложным образом, то всё просто- набирается энное количество картинок, разных звуков, база слов. Самое сложное здесь- чтобы по голосу писалась формула для обработки. Пока всё это только первоначальная идея, которая должна приобрести очертания по мере реализации.

Автор: Агрох 29.1.2014, 10:51
По тому, как всё описано, при визуальном построении мира получится просто каша из случайных пикселей или, если использовать для генерации готовые изображения, случайных комбинаций изображений.
Для генерации именно мира всё равно нужно какие то правила задать. Типа если голос низкий, то по центру экрана на ровном месте начинает расти гора, если голос вибрирует, то поверхность горы покрывается неровностями. Если издать резкий и короткий звук то появляется не просто гора, а вулкан. От свиста поверхность начинает покрываться растительностью. Ну и т.д.

Автор: Romikgy 29.1.2014, 11:14
без понятия процесса , что то реализовать будет сложно ... я только понял что нужно будет переводить голос во что то , и дальше процесс, увы не понятный что он делает и что в результате получается...

Автор: Lois 31.1.2014, 00:20
В общем мне уже помог крайне умный юноша и даже написал учёбный вариант программки. Всё оказалось гораздо смешнее, чем я предполагал.

Автор: Агрох 31.1.2014, 09:35
А пример покажешь, что вышло?

Автор: Lois 31.1.2014, 11:20
Цитата(Агрох @  31.1.2014,  09:35 Найти цитируемый пост)
А пример покажешь, что вышло? 


нет.

Автор: Lois 31.1.2014, 14:16
Цитата(Агрох @  31.1.2014,  09:35 Найти цитируемый пост)
А пример покажешь, что вышло?


а вообще в чём проблема? Если Вы разбираетесь в программировании, то я думаю сможете сами написать программку.

Автор: Bitter 31.1.2014, 19:20
Вышел белый шум в итоге )

Автор: Lois 1.2.2014, 21:56
Цитата(Bitter @  31.1.2014,  19:20 Найти цитируемый пост)
Вышел белый шум в итоге ) 


а можно поюзать? Я как раз композитор и немного разбираюсь в шумах.

Автор: Bitter 2.2.2014, 00:49
нет

Автор: Lois 2.2.2014, 04:08
Цитата(Bitter @  2.2.2014,  00:49 Найти цитируемый пост)
нет


а за деньги?

Автор: Агрох 3.2.2014, 11:31
Цитата(Lois @  31.1.2014,  15:16 Найти цитируемый пост)
а вообще в чём проблема? Если Вы разбираетесь в программировании, то я думаю сможете сами написать программку


Каюсь. По вашему описанию так до конца и не понял, что собственно вы замышляли. А не понимая, что надо сделать , получается ситуация из сказки: "Поди туда, не знаю куда, принеси то, не знаю что".

Автор: Lois 3.2.2014, 14:36
Цитата(Агрох @  3.2.2014,  11:31 Найти цитируемый пост)
Каюсь. По вашему описанию так до конца и не понял, что собственно вы замышляли. А не понимая, что надо сделать , получается ситуация из сказки: "Поди туда, не знаю куда, принеси то, не знаю что". 


ну если выражаться совсем ясным языком- пишется программа, которая будет сама писать программы случайным образом. Скажем есть 10 команд и она их будет менять с помощью рендома. Некоторые сочетания команд работать не будут, некоторые будут. Тут хитрость основная в том, чтобы составить такую программу и из таких команд, которые всё же будут как-то сочетаться между собой. Ну и плюс ещё какое-то окончание программы, чтобы в какой-то форме видеть результат, скажем в графической или звуковой.

Автор: Bitter 3.2.2014, 14:48
Цитата(Lois @  3.2.2014,  14:36 Найти цитируемый пост)
пишется программа, которая будет сама писать программы случайным образом. Скажем есть 10 команд и она их будет менять с помощью рендома

http://prof9.narod.ru/doc/012/index.html

Автор: Агрох 3.2.2014, 14:53
Вопрос: зачем именно писать программу? Рандомный вызов функций, с логированием порядка их вызова (если надо воспроизвести последовательность).

Код

while true do
begin
  case Random(N+1) of
    0: procedure1;
    1: procedure2;
    3: procedure3;
    ...
    N-1: procedureN-1;
    N: procedureN;
end;


И мне интересен не сам программный код, а результат работы. Т.е. либо картинка, либо звуковой ряд.
Ну и если всё же про код говорить: что именно вы использовали для вывода результата? И было ли что либо на входе?

Автор: Lois 3.2.2014, 18:08
Цитата(Агрох @  3.2.2014,  14:53 Найти цитируемый пост)
И мне интересен не сам программный код, а результат работы. Т.е. либо картинка, либо звуковой ряд.
Ну и если всё же про код говорить: что именно вы использовали для вывода результата? И было ли что либо на входе?


 я ничего не использовал, так как сам к сожалению ( а скорее к счастью) не пишу программы. Обычно я договариваюсь с фрилансёрами. Вот сейчас мне делают супер проект- может быть я здесь его покажу.
Что касается этой программки, то речь идёт несколько о других вещах и всё придумал умный юноша, я его только направил нужным образом. Что значит другим образом раскрывать пока не хочу, так как это связано с другими областями человеческого знания.
Это близко вот к этому парадоксу

http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%BE%D0%BA%D1%81_%D0%BB%D0%B6%D0%B5%D1%86%D0%B0


Цитата(Агрох @  3.2.2014,  14:53 Найти цитируемый пост)
Вопрос: зачем именно писать программу? Рандомный вызов функций, с логированием порядка их вызова (если надо воспроизвести последовательность).


ну если Вам не надо, не пишите. Речь идёт не о функциях, а о базовых командах.

Автор: Агрох 4.2.2014, 09:56
Чувствую, что на самом деле получилась какая то НЁХ и её поймут только избранные ценители. Типа тех, для которых вот http://www.youtube.com/watch?v=pWhaJOJAl3o является искусством.

Ладно, сам ещё немного поэкспериментирую.

Цитата(Lois @  3.2.2014,  19:08 Найти цитируемый пост)
ну если Вам не надо, не пишите. Речь идёт не о функциях, а о базовых командах.


Речь не о том, что надо мне, а о том - зачем это вообще нужно. Своим вопросом я хотел спросить почему именно так сделано, а не иначе? У всего есть причина. Даже если эта причина "Мне так хочется".

Автор: Lois 4.2.2014, 18:34
Цитата(Агрох @  4.2.2014,  09:56 Найти цитируемый пост)
Речь не о том, что надо мне, а о том - зачем это вообще нужно. Своим вопросом я хотел спросить почему именно так сделано, а не иначе


я думаю это можно использовать для разных дел, но я хочу пока заказать подобную программу для целей искусства.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)