Генераторы...

Долго ли, коротко ли, а реальную работы над DioWorlds я все же. И хотя до этапа когда там можно будет играть еще очень далеко, кое чем я, все же, хочу сегодня похвастаться.
Генераторы!

Сколько я их написал за свою жизнь? Да пожалуй что и не сосчитаю. В последний раз я писал, что надеюсь, что это последний. Прошло время, и вот я пишу его снова. Хотя предыдущий все таки был неплохой и довольно навороченный, но он был написан на c#, а потому для этого проекта отказался не подходящим. Пришлось начинать все сначала, и за день я кое чего набросал. Он весьма далек от совершенства, в частности он не умеет склонять(в отличии от прошлого) и много еще чего не умеет. Поэтому я пока не могу перенести все что было на старом( diogames.ru/Gen/ ) сюда. Ну что, лиха беда начало? На самом деле, мне было нужно его наличие, хотя бы в каком-то виде. Потому что иногда очень хочется иметь под рукой инструмент, который позволит быстро сделать какой-то генератор и не только для себя.
Сейчас их писать могу только я, но со временем я планирую предоставить возможность это делать и другим. Но задача это не приоритетная, а потому когда я до нее доберусь — пока не знаю. А потому, пока буду вставать исключительно сам, и надеюсь, время от времени, радовать этим вас.

43 комментария

avatar
Занятная штука, я такие жуть как люблю, спасибо! Два вопроса / предложения.

1. Можно ли как-нибудь сделать так, чтобы поля с текстом выводились в несколько строк, и их не надо было бы прокручивать? Неудобно жутко :)

2. Можно ли (на будущее) давать свои предложения / пожелания по наполнению генераторов? Просто, насколько я знаю, это чуть ли не единственный подобный ресурс на русском языке.
avatar
1. Можно ли как-нибудь сделать так, чтобы поля с текстом выводились в несколько строк, и их не надо было бы прокручивать? Неудобно жутко :)

А можно пояснить? Честно говоря не понял мысль х) В смысле сделать более компактным по высоте или что?

2. Можно ли (на будущее) давать свои предложения / пожелания по наполнению генераторов? Просто, насколько я знаю, это чуть ли не единственный подобный ресурс на русском языке.

Не можно а нужно :) Особенно если не на пустом месте, а еще и какие-то материалы есть, то вообще супер!
avatar
А можно пояснить? Честно говоря не понял мысль х) В смысле сделать более компактным по высоте или что?
Собственно, вот как оно выглядит у меня в браузере:

Хотелось бы, чтоб все, что начинается после слова «доказател...» было видно сразу, без таскания ползунком направо.
Не можно а нужно :) Особенно если не на пустом месте, а еще и какие-то материалы есть, то вообще супер!
ОК, подготовлю материалы и скину. Как лучше: сюда, в личку или на почту?
avatar
Понял, у меня не так… Исправлю сегодня ночью…
avatar
Собственно исправил
avatar
Благодарствую!

Из идей — для начала можно было бы оцифровать два моих генератора, вот этот:
http://svolod-gm.livejournal.com/70802.html и вот этот:
http://svolod-gm.livejournal.com/63189.html
в виде «сгенерить одним кликом». Может кому пригодится. Мне — точно :)
avatar
Таки держите! dioworlds.paradoxdream.com/lab/gen/Svolod-gm :)
Если что заметите не так, говорите, будем править. Генераторы прикольные, думаю мне и самому могут пригодится :)
Впрочем, нужно больше золота! :) Если будут еще предложения, давайте ;)
avatar
Вот спасибо! :)

Только из генератора npc исчезло поле «Особенность»…
avatar
Ох, прошу прощения. Исправил :)
avatar
Мне жаль этого парня… хДДД Ему все мало…

Внешность: Отсутствие уха, пальца и т.д.
Род занятий: Ремесленник или подмастерье
Поведение: Говорит короткими предложениями
Характер: Не очень-то умный
Мотивация: Ищет новых ощущений
Тайна: Тяжелое психическое расстройство
avatar
Ну нифига себе ты любишь тег «pre».
avatar
Нуу, не то что бы люблю, просто это было быстрое решение, что бы не заменять новые строки на p или br… Для этого надо было что-то писать хДД А было уже около 6 утра тогда :D
avatar
Нет больше pre :)
avatar
testarea cols=60 rows=10 wrap=soft
avatar
В принципе могу сделать по аналогии как я сделал вчера DiceRoller. dioworlds.paradoxdream.com/lab/diceroller
avatar
Можно еще генераторы кубиков для сетлеров и эльдер сайн прикрутить. Ну, чисто по приколу.
avatar
Ну могу. Только так сходу я не смог быстро найти описание дайса сетлера. А ху из эльдер сайн вообще не знаю, к своему стыду
avatar
для сетлеров это 6д6, вместо цифр от 1 до 6 — ресурсы из игры: овцы, доски, металл, зерно, глина и золото.
А элдер сайн — настолка из вселенной архэм хоррор, там сложнее… хотя тоже 6-8 д6
avatar
Пожалуйста dioworlds.paradoxdream.com/lab/gen/Tools :)
Добавил сетлеров и еще парочку мелких, но, возможно, полезных… :)
avatar
О, спасибо!
Зодиак прямо в генератор НПС просится.
avatar
Месье знает толк в извращениях :(

http://bgfons.com/upload/paper_texture330.jpg 1,6 MB
avatar
Да ладно, что, сильно тормозит? :) Бэк был просто быстро нагуглен среди БОЛЬШИХ картинок и вставлен. Конфигурирование внешнего вида сайта — это отдельная задача. А вообще, кэш броузера еще никто не отменял, вроде ;)
avatar
К ротиру форум на котором я играю, каждая страница весит больше 3 мегабайт, с картинками х)
avatar
А вы еще спрашиваете, почему я не люблю форумы? :)
avatar
Ну, в современную эпоху, когда я смотрю фильмы исключительно онлайн, это кажется не сильно большой поблемой х)
Впрочем извольте, 60кб вместо полутора мегабайт. Ваша душенька довольна?

P.S. Я согласен, что изначально сайт должен весить минимум. Но во первых, как бы это даже не альфа версия, это то, над чем я работаю, в том числе размышляю о средствах оформления. А во вторых, так же надо понимать, что для некоторых людей 1-2 мегабайта — не трафик, и они буду оформлять свои игры именно так, если конечно будут там играть) Так как форумы, не вижу, по большому счету, в этом ничего зазорного…
avatar
Я даже ради вас по быстрому сделал бесшовную текстуру о.О Экий я добрый, аж самому противно XD
avatar
Ну вот видите, мир стал чуть-чуть лучше :)

Кстати, было бы интересно услышать рассказ о библиотечке js-парсера, но этот рассказ выходит за рамки имажинарии.
avatar
Да нечего тут особо рассказывать. В свое время я писал свой парсер на своем же генераторе парсеров, но это было на c#. Сейчас использовал peg.js. При этом, дабы сократить время(его сильно не хватает), я взял за основу сырой шаблоногенератор на peg.js для razor синтаксиса(он наиболее похож на мой синтаксис) с гитхаба. Допиливать пришлось много и еще придется. И в конечном счете, подозреваю, что от того, что я взял за основу вообще ничего не останется. Но зато я сделал что-то более ли менее рабочее за 1 день… Хотя он все еще очень сильно уступает предыдущему…
avatar
В общих чертах, сейчас генератор напимер имен выглядит так…

@list w
{
Абелия
Абель
Авелин
}
@list m
{
Аапели
Аапо
Аарн
}
@list f{
Аббади
Адан
Алибер
}
@gen Мужские {@m @f}
@gen Женские {@w @f}
Просто имена французов.
avatar
А в грамматиках вы не разбираетесь и написании лексических анализаторов?
avatar
Современные генераторы парсеров уже, по большому счету, не различают грамматические и лексические анализаторы, эпоха яксов/лексов прошла. А так, я же говорю, в свое время писал и свой. Но это была чистейшая глупость и очередное изобретение собственного велосипеда. Ну, теперь я знаю, что я могу это сделать, и больше этого делать не буду… х)
avatar
А мне вот нужен… ну то есть как нужен… желателен.
avatar
Ну тебе виднее. Я в свое время писал, причем, за свою карьеру программиста не один раз… Это муторно, потом могут долго лесть баги, и с имхо не имеет смысла…
Я даже статью писал, только так и не выложил. Она называлась что-то воде «арабский кошмар», потому что процесс представлял собой вложенные итерации, типа как сон во сне, во сне, во сне… В конечном итоге парсер грамматики для генератора был написан на самом себе :) Обычное такое явление, когда язык программирование написан на самом себе х)
avatar
Обычное такое явление, когда язык программирования написан на самом себе х)
FORTH же! Ну и да, чтобы понять рекурсию надо понять рекурсию :)
avatar
А вообще, смотря что и для чего. Есть ведь еще регулярные выражения. Да и без них, парсер какого нить JSON-а по идее не слишком сложная задача, при его простой и формальной грамматике.
avatar
avatar
Ох, даже не знаю… А что собственно надо получить на выходе? С одной стороны, на первый взгляд тут и особого ничего такого не нужно, сплит, да список ключивых слов. Но все грозит уткнуться в неформальность языка, всякие склонения и прочее. Таки парсить нечто более близкое к человеческой речи несколько сложнее, чем просто формальный язык программирования. Хотя возможно есть какие-то готовые решения. Так или иначе, первый вопрос который надо решить. А для чего, собственно надо это парсить? Что должно получится на выходе?
avatar
Но все грозит уткнуться в неформальность языка, всякие склонения и прочее.
На худой конец есть «каноническая форма», лишенная этих недостатков и похожая на язык FORTH.
На выходе — ответ «правильно ли составлено предложение или нет» (согласно правилом канонической формы), то есть является ли заклинание (не суть что оно делает) в принципе валидным?

Это минимум :) Максимум не с нашими знаниями :(
avatar
Вот только зачем, я так и не понял. Какова цель данного парсера? Что он собственно делать должен?
avatar
ответ «правильно ли составлено предложение или нет»
… согласно определенным правилам составления.
avatar
А можно в дайсомёт добавить фейт-дайсы (4dF)?
avatar
Можно, добавил :)
avatar
Спасибо. :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.