![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ГЕНЕРАТОР ИМЕН В ИГРАХ.
Zloy Alien © (2003-05-02 08:17:00)
Привеи всем!!!
У меня тут вопросик такой:
кто знает где можно достать генератор имен,
а то я игру тут делаю, а имена толковые придумать не могу.
И еще у кого есть желание, можно попробовать
написать свой генератор, например по таким
параметрам:
1)фентези
2)фанастика
3)обычные имена
4)замудреные имена
5).....
И подгруппы:
1)Роботов
2)Эльфов
3)Людей
4)Орков
5)И тд и тп.
Пишите свои предложения.
Gandalf (2003-05-03 22:27:00) [21]
> Ну хорошо, а если части имён, а не слоги. Например, те,
> которые могут быть на первом месте, потом на твором и на
> третьем.
Это из упрощенных вариантов моего алгоритма, только эти кусти не надо искать и вбивать руками, а генерилка их сама выделяет, анализируя библиотеку имен. И опять же в таком упрощении - имен получишь мало, хороших еще меньше.
А с Русскими реально намучиешся, только не с древне-русскими, а с современными.
> Получается:
Ты еще КРУТОТЕЛЬ, КРУГОЗАР, ТВЕРДИГОР, ТВЕРДИЗАР и СВЯТОТЕЛЬ забыл :) Уже не супер. А вот если имя Илья, Иван, Петр, Дмитрий - безспорно русские и старые (правда с корнями из других языков), их как получишь?
Плохой человек (2003-05-03 19:05:00) [22]
>Так хорошо получаются только английские имена. С русскими придется помучатся, разумнее - набор слогов и их сочетаемости
1:
СВЯТО
КРУТО
ТВЕРДИ
2:
ГОР
ЗАР
ТЕЛЬ
СЛАВ
Получается:
СВЯТОГОР СВЯТОЗАР СВЯТОСЛАВ КРУТОГОР КРУТОСЛАВ ТВЕРДИСЛАВ ТВЕРДИТЕЛЬ
Asteroid (2003-05-03 18:54:00) [23]
> Плохой человек (03.05.03 17:35)
Так хорошо получаются только английские имена. С русскими придется помучатся, разумнее - набор слогов и их сочетаемости
Плохой человек (2003-05-03 17:35:00) [24]
Ну хорошо, а если части имён, а не слоги. Например, те, которые могут быть на первом месте, потом на твором и на третьем. Например:
1:
ЭВЕР
МЕЛТ
КЛИН
2:
ДАУН
СМАЙЛ
ГРОСС
И получается:
ЭВЕРДАУН ЭВЕРСМАЙЛ ЭВЕРГРОСС МЕЛТДАУН МЕЛТСМАЙЛ МЕЛТГРОСС КЛИНДАУН КЛИНСМАЙЛ КЛИНГРОСС.
Чем вам не нравится???
Gandalf (2003-05-03 16:34:00) [25]
> Чем вам не нравится?
Да нет не плохо, но ты подобрал удачные ведь могут получится и такие:
ФА
АФ
НОКА
ВОКА
ВОННОК
ВОНАДАЛЬ
и т.п.
Уже не супер, тем более что тебе так мало слогов не смогут сгенерить много имен, а чем сильнее ты рассширишь список, тем хуже у тебя будут получаться имена.
Плохой человек (2003-05-03 15:30:00) [26]
>А где, кстати, взять список всех слогов русского языка ?
Нафиг надо. Так имена нормальные не получаться. Например, есть слоги и буквы:
ГЭН
ДАЛЬ
НОК
ВОН
А
Ф
Из них имена:
ГЭННОК
ГЭНДАЛЬФ
ДАЛЬНОК
ДАЛЬФ
АВОН
ГЭНВОН
Чем вам не нравится?
Gandalf (2003-05-03 11:44:00) [27]
> Ты меня не так понял - я хочу чтобы имена генерировались
> не
> по тем которые я вписал в txt"ке или еще где, а сами по
> за-
> данному мной алгоритму...
Алгоритм для имен придумать - довольно тяжело, обычно все строится на выделении неких логички значимых конструкций (слоги, корни - буквы сами по себе не несут нагрузки), потом учитывается их положение в имени и с какими они обычно в соседях состоят, выделяют буквы связки, можно учитывать мутацию корней (е=э, йо=эо и т.п.). И далее с учетом этих данных состовляем имя - другой подход практически всегда неприемлем, поскольку так создаются имена в жизни (людьми и авторами книг - почти всегда). Тот же много уважаемый Толкиен - создал полностью свой язык, а далее комбинировал корни выражающие сущность персонажа и получал имена. Очевидно что разбор и выделение из имен частей надо доверить компьютеру он это сделает быстрее чем человек. Потому нужна библиотека имен которую надо анализировать, потом создается файл с полученой после анализа информацией, которую можно в ручную подправить и генерить имена. Еще есть метод генерации имен по маске - но он довольно убог - на практике я видел что он неплохо генерит имена из "Вавилона 5" (Г"Кар, Г"Кван и т.п. - маска довольно очевидна).
> А где твой генератор можно достать?
Пиши, отошлю.
Zloy Alien (2003-05-03 07:33:00) [28]
2 SdlWin
Ты меня не так понял - я хочу чтобы имена генерировались не
по тем которые я вписал в txt"ке или еще где, а сами по за-
данному мной алгоритму...Просто у меня имена не получается
нормальные придумать - получается кокой-то галяк :-(( Напи-
ши свои примеры... Жду.
2 Кен
:-))))))))
2 Mop
Попробую твое предложение...
2 Gandalf
А где твой генератор можно достать?
2 Fennek^Red
> Ну блин ты нашел проблему...
Ну я не виноват если у тебя нет такой проблемы. :-(((
Пишите...
Mop (2003-05-03 02:36:00) [29]
Попробуй буквы выбирать с помощью Random, и если например, будет больше двух гласных ставь согласную и т.д
Кен (2003-05-03 01:09:00) [30]
"Нет такого предмета, который не смог бы послужить еврею для фамилии" © Григорий Горин.
Отсюда вывод. Пиши игру про евреев.
2 Плохой человек
А где, кстати, взять список всех слогов русского языка ?
Плохой человек (2003-05-02 19:02:00) [31]
Сделать набор слогов и слагать их в произвольном порядке.
Gandalf (2003-05-02 11:10:00) [32]
Я делал генератор (и даже сделал), он анализирует бибилиотеку имен и потом генерирует свои, вообщем-то не так плохо (я генерил Гномов и Хоббитов, по Толкиену) - но думаю Русские или скажем Американские он генерить уже не сможет, потому как в литературе (тоже Толкиен) - разработал довольно жесткую систему имен в которой довольно легко выделить образующие части, в время как у "нас": Дмитрий, Александр, Алексей, Леонид, Иван... - ну и что?! (половина пришла из других языков) Тут только библиотека. Тем более что мы можем оценить "реалистичность" современного Русского имени - и если получим Дминид или Леонрид, Алексрий - будем долго удивдятся. Чем имен будет больше в библиотеке тем сильнее будем удивляться, думаю не удастца уловить итемологического корня. А вот если генерить древне Русские - Святополк, Святосвав и т.п. - тут все ОК. Если интересно пиши.
Fennek^Red (2003-05-02 10:51:00) [33]
Ну блин ты нашел проблему...
SdlWin (2003-05-02 09:15:00) [34]
Как ты решил писать этот генератор?
Так?
var s:array[0..MaxCharInName]of char;
begin
for i:=0 to MaxCharName do begin
s[i]:=random;
end;
end;
Или может составишь список в файле Names.txt и попробуешь так(конечно в начале файла укажи кол-во имен)?;
var
Names:array of string;
F:file;
i,j:integer;
begin
assignfile(f,"names.txt");
reset(f);
readln(f,j);
setlength(names,j-1);
for i:=0 to j-1 do begin
readln(f,names[i];
end;
end;
Это наверное и сам знаешь,но ты спрашивал про генератор,и скажу тебе про генератор:не майся дурью,а составь сам;
если подождешь то могу эти имена тебе написать тут;
Sdlwin (2003-05-02 08:58:00) [35]
Щя погоди...