Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Эволюция в виртуальной машине

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9

Открыть новую тему     Написать ответ в эту тему

beeos



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вам стоит подумать над системой плагинов, чтобы любой мог подключить к вам своего "монстра"
идея безусловно великолепная, но мы с этим пока подождем. Сейчас задача -- создать простую и понятную схему с минимальным набором параметров. Любые замечания и предложения принимаются с радостью, так же, как и критика. Признаюсь, что с C# не работал. Однако не хочу его использовать не поэтому. Для меня прежде всего важны алгоритмы и структуры данных. А язык -- всего лишь надстройка. Еще раз повторю: можно (и нужно) писать на любом языке. Но для этого нужно разработать базу. Вот ее-то сейчас и попытаемся реализовать на C/C++.

Всего записей: 329 | Зарегистр. 06-01-2004 | Отправлено: 13:02 13-04-2004
Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Да, ну так че с нашими классами?

Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 13:21 13-04-2004
dop38



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
beeos
Базовые классы надо реализовывать абстрагируясь от языка. Тогда можно будет с лёгкостью их реализовать через файлы настроек. Ведь только представь, какой гемморой тебе предстоит при общении между классами из разных языков ? Тогда уж тут и COM, DCOM, ActiveX и пр. лабуда полезет. Поэтому, имхо, вам надо создать "язык" описания creatures, их свойств и поведений. Потому что начав разработку на С++ (который, я тоже очень люблю ), вы заранее ограничиваете себя в дальнейших разработках.
Меня это тоже интересует, потому как одной из первых программ была программа "Жизнь"/"Life" в далеком 86 году

Всего записей: 51 | Зарегистр. 26-12-2003 | Отправлено: 13:50 13-04-2004
Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Кто-то слышал про Tierra?
Я ее как-то скачивал, смотрел... Кажется, это одна из самых знаменитых програм, даже где-то исходники есть. Может ее покалупать в поисках идей или будем использовать только свою фантазию.  
 
Я за то, чтобы писать на С++.  
 
Давайте обсуждать классы!!!

Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 14:11 13-04-2004
dop38



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Повторюсь, что я человек здесь случайный, но, думаю, что к моему совету "разработать бизнес-модель" абстрагировавшись от языка программирования стоит прислушаться. Поверьте опыту человека с не одним успешным проектом, в том числе и на мировом уровне [нескромно ? зато честно ]
Просто не хочется, чтобы проект умер после пары тысяч строк кода

Всего записей: 51 | Зарегистр. 26-12-2003 | Отправлено: 14:14 13-04-2004
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я согласен с тем что писать надо абстрагируясь от строгостей Си. Поэтому и говорю - давайте на Дельфи ибо Дельфи ближе к языку человека.
Но в принципе мысль вообще не привязываться к языку тоже правильная.
 
Плагины это круто
 
beeos
Создавая

Цитата:
простую и понятную схему с минимальным набором параметров

нужно не забывать о универсальности и расширяемости. Это вполне сочитаемо я думаю.
 
допустим есть некий объект
 
TArea // ячейка местности
x,y // ее координаты в "матрице"
t // средняя температура в ячейке
food //количество еды (ессно вегетарианской)
plod // плодородность (скорость восстановления еды (ессно вегетарианской) )
nice // духовная красота ячейки (насколько по кайфу в ней находится для высокоразвитого сущ-ва)
accs //доступность ячейки (сколько энергии надо потратить для входа/выхода/проезда мимо)
 
...
сейчас нет времени больше пофантазировать, давайте вместе дополним/скорректируем список параметров (свойств) этого объекта, а потом пойдем дальше.
Реализация этого объекта на любом языке - это уже дело техники, а не творца


----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 15:30 13-04-2004
Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Unconnected, это не серьезно.  
Говорилы - балакалы... Читайте выше, там уже описано много свойств и немного детальнее...  
 
Независимо от того, к чему прийдет общественная мысля в этой теме, конкретно я писать буду на С++. Точнее - на Билдере.  

Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 15:49 13-04-2004
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Crazy_Shrike
Там где как ты говоришь, написано, не указаны ни комментарии, ничего.
Ты думаешь написав
Код:
class CEssence  
{  
     public:  
          CEssence();  
 
          int GetLifeTime();  
          int GetMass();  
          void AddMass();  
          int GetEnergy();  
          void AddEnergy();  
          int GetSex();  
          int GetLibido();  
 
или
Код:
private:  
          bool hromosoma[100];  
          int x;  
          int y;  
          int GetDecimal(int,int);  
 
Ты все всем объяснил ?
И вообще - если планируешь дальше обзывать нас балаКалами - пиши сам себе на здоровье.
Ты просто никогда в команде ничего не писал и сейчас не напишешь.

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 16:31 13-04-2004
beeos



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
нужно не забывать о универсальности и расширяемости. Это вполне сочитаемо я думаю.  


Цитата:
совету "разработать бизнес-модель" абстрагировавшись от языка программирования  

Солидарен со всеми в принципе это и имел ввиду...

Цитата:
Сейчас задача -- создать простую и понятную схему с минимальным набором параметров
и
Цитата:
А язык -- всего лишь надстройка

Еще раз:

Цитата:
Ведь только представь, какой гемморой тебе предстоит при общении между классами из разных языков

об этом пока речи нет.  
пусть каждый пишет на чем угодно опираясь на шаблон, который будет создаваться общими усилиями. На всякий случай повторю: шаблон -- не программный код на С или Pascal или языке узелков Майя, а схема, которую можно перевести на любой язык.
 
Crazy_Shrike

Цитата:
Unconnected, это не серьезно. Говорилы - балакалы...  

Не согласен. Есть интересные идеи.
 
По поводу координат существ:  
Имхо лучше хранить в ячейке указатели на существ, поскольку они все равно не существуют вне среды. Сейчас к сожалению нет времени подробно описать классы, поэтому лучше покажу уже в готовом виде.

Всего записей: 329 | Зарегистр. 06-01-2004 | Отправлено: 16:44 13-04-2004 | Исправлено: beeos, 17:08 13-04-2004
Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Гм. Сорри.
В команде не писал, правда.
 
класс CEssence - класс для наших объектов.
 
CEssence - конструктор (случайная инициализация хромосомы, координат x,y)
 
int GetLifeTime()  - вытягивает из хромосомы (двоичной) значение времени жизни и возвращает как целое...
 
int GetMass()  - то же, возвращает массу...  
 
int GetEnergy()  - ...энергию...
 
int GetSex() - пол...
 
int GetLibido()  -  ... радиус видимости потенциального портнера...
 
Методы типа IncMass(), IncEnergy() - добавляет единиу к соответсвующему атрибуту...
 
по аналогии, DecMass(), DecEnergy() - вычитает единицу...
 
 
Итак,
 
class CEssence
{
     public:
          CEssence();
 
          int GetLifeTime();
 
          int GetMass();
          void IncMass();
          void DecMass();
 
          int GetEnergy();
          void IncEnergy();
          void DecEnergy();
 
          int GetSex();
 
          int GetLibido();
          void IncLibido();
          void DecLibido();
 
     private:
          bool hromosoma[100];
          int x;
          int y;
 
};  
 
Схема хромосомы: название, длина, диапазон возможных значений, диапазон битов в хромосоме, соответственно:
 
Life time - 20 bit, [~10^6];    0-19
Mass       - 10 bit, [~10^3];   20-29
Energy    - 10 bit, [~10^3];   30-39
Sex         - 1  bit;                  40
Libido      - 10 bit, [~1^3];     41-50
 
Атрибуты - двоичная хромосома длинной 100 бит, две координаты.
 
И я ни кого не обзываю, просто есть атрибуты, которые мы уже довольно подробно и поочереди обсудили.  
 
 
 
 
Добавлено
 Гм. Сорри.
В команде не писал, правда.
 
класс CEssence - класс для наших объектов.
 
CEssence - конструктор (случайная инициализация хромосомы, координат x,y)
 
int GetLifeTime()  - вытягивает из хромосомы (двоичной) значение времени жизни и возвращает как целое...
 
int GetMass()  - то же, возвращает массу...  
 
int GetEnergy()  - ...энергию...
 
int GetSex() - пол...
 
int GetLibido()  -  ... радиус видимости потенциального портнера...
 
Методы типа IncMass(), IncEnergy() - добавляет единиу к соответсвующему атрибуту...
 
по аналогии, DecMass(), DecEnergy() - вычитает единицу...
 
 
Итак,
 
class CEssence
{
     public:
          CEssence();
 
          int GetLifeTime();
 
          int GetMass();
          void IncMass();
          void DecMass();
 
          int GetEnergy();
          void IncEnergy();
          void DecEnergy();
 
          int GetSex();
 
          int GetLibido();
          void IncLibido();
          void DecLibido();
 
     private:
          bool hromosoma[100];
          int x;
          int y;
 
};  
 
Схема хромосомы: название, длина, диапазон возможных значений, диапазон битов в хромосоме, соответственно:
 
Life time - 20 bit, [~10^6];    0-19
Mass       - 10 bit, [~10^3];   20-29
Energy    - 10 bit, [~10^3];   30-39
Sex         - 1  bit;                  40
Libido      - 10 bit, [~1^3];     41-50
 
Атрибуты - двоичная хромосома длинной 100 бит, две координаты.
 
И я ни кого не обзываю, просто есть атрибуты, которые мы уже довольно подробно и поочереди обсудили.  
 
 

Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 16:58 13-04-2004
ArtSh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А вы не думали, что луче, и переносимей будет описывать мир не массивом "ячеек", а включить координату (желательно вещественную, можно в качестве ссылки), в свойства объекта. Тогда удобно будет вносить что либо со стороны окружаещего мира, например задатть распределение ресурсов, в виде функции которая проходит по всему списку объектов и в зависимости от координаты производит какие либо изменеия в ресурсах. В таком случае так же удобно задать движение существа пропорционально градиенту "высоты" или "энергии".
 
Еще на мой взгляд все свойства объектов должны изменятся через определенные промежутки времени (желательно одновременно) в эти промежутки объекты передвигаются по миру в поисках еды, объектов другого пола, спасаться от других и т. д. Все свойства объектов должны быть связаны (например либидо хависит от предрасположенности(наследства), массы, энергии, и времени жизни(экстремально)).
 
И наконец чтобы было больше похоже на правду объекты должны выделять в окружающую среду загрязнение, когда загрязнение небольшое, оно влияет только на одну точку(и небольшую окресность) мира, когда же общее загрязнение превысит какой-то уровень, то должны начаться глобальные изменения(уменьшение энергии, стихийные бедствия, или резкое увеличение возраста всех объектов сразу).

Всего записей: 92 | Зарегистр. 30-03-2004 | Отправлено: 19:00 13-04-2004
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
2Crazy_Shrike
Вот твой класс ячейки

Код:
class CCell  
{  
     public:  
          void SetEnergy();  
          int GetEnergy();  
          void SetMass();  
          int GetMass();  
 
     private:  
          int energy;  
          int mass;  
};

Я не вижу чем он детальнее моего... поясни!
 
ArtSh
Для того что ты предлагаешь нам надо будет арендовать суперкомпупер в каком нить университете. Именно их используют для моделирования подобных процессов - типа атмосферных явлений и подобной математики.

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 19:13 13-04-2004
Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я как-бы и не видел твоего класса...
 
А с мощностями - это правильно... Старая программа, в которой было несколько деятков объектов и поле 100х100 делала меньше ста тактов в секунду... А там ниче сложного и не было...

Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 19:31 13-04-2004
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
TArea // ячейка местности  
x,y // ее координаты в "матрице"  
t // средняя температура в ячейке  
food //количество еды (ессно вегетарианской)  
plod // плодородность (скорость восстановления еды (ессно вегетарианской) )  
nice // духовная красота ячейки (насколько по кайфу в ней находится для высокоразвитого сущ-ва)  
accs //доступность ячейки (сколько энергии надо потратить для входа/выхода/проезда мимо)  

 
Не упираясь в язык программирования - это он и есть

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 19:51 13-04-2004
Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ок.
Тогда вопросы...
 
За что отвечает температура ячейки и духовная красота? ... или на что влияет.  

Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 20:07 13-04-2004
unhappy



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не напрасно ли Вы спорите?
Имхо UncoNNecteD более прав - есть смысл абстрагироваться от синтаксиса конкретного языка программирования и составить описание модели человеческим (приближенным к нему) языком.
В свою очередь скажу, что все (?) параметры ячейки/существа со временем могут менятся?
Но в начале вс-же стоит просто описать модельь БЕЗ учета возможных измененений.
 
 

Всего записей: 681 | Зарегистр. 25-10-2002 | Отправлено: 00:09 14-04-2004
GreyGendalf

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALL
модель нашей вселенной с помощью UML не желаете порисовать?

Всего записей: 272 | Зарегистр. 06-01-2003 | Отправлено: 08:30 14-04-2004
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GreyGendalf
Это как ?
 
Crazy_Shrike
Температура отвечает за то насколько уютно находится существу в этой ячейки и соответственно насколько время проведенное в этой ячейке уменьшает лайфтайм существа. Естественно что в генах должно быть зашифровано значение оптимальной жизненной температуры (идеал) существа - ну как например африканцы любят тепло, а сибиряки прохладу. (не забываем о мутациях есссно).
 
Духовная красота - абстракция, например приятно находится в светлой большой комнате, а не в душном маленьком подвале. Этот параметр необходим, что бы Искуственной Жизни придать окрас реальности - чтобы существа стремились к чему то.
Этот параметр, я думаю, можно складывать из нескольких (например формульно объем+красота/количество_смертей_в_ячейке   - это естественно просто пример, надо его прорабатывать, к чему и призываю)
 
unhappy
thnx за понимание
Что ты подразумеваешь под "изменяться" ?
 
Добавлено
З.Ы. Забыл заметить, что любовь к духовной красоте тоже желательно прописать в генах, например отталкиваясь от интеллекта...

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 12:49 14-04-2004
Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Имхо, время жизни не должно зависеть ни от чего. Это один из важнейших генов, который будет влиять на отбор. Если, конечно, в детстве никто не болел...
 
Добавлено
объем ячейки, имхо, - это лишнее... На что он будет влиять?

Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 14:22 14-04-2004
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
1. Глупо помоему - время жизни не зависит от условий проживания ? Посмотрю я на тебя - поживи ка на вокзале в обнимку с мусоркой...
 
2. Объем надо задавать - он влияет на то - сколько там может жить тварей и если процент заполнения высок - понижать компфортность (аналог гибели от перенаселения в ЖИЗНИ)

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 18:25 14-04-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Эволюция в виртуальной машине


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru