ТОМ2 - платформа для парсерных игр

Объявление

Открыт сайт tom2-game.ru.


Последнюю версию платформы можно скачать здесь.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ТОМ2 - платформа для парсерных игр » Бета-тестирование » Мелкие доработки


Мелкие доработки

Сообщений 1 страница 10 из 10

1

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

Первое - это конструкция switch-case.
На сколько я понял из стандартной библиотеки:

Код:
switch(Key~п)
  case("Рп") Key=Key+"Ве"
  case("Дп") Key=Key+"Ве"
  case("Вп") Key=Key+"Ве"
  case("Тп") Key=Key+"Ве"
  case("Пп") Key=Key+"Ве"
  case() Key=Key+"Не"

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

Код:
case("Рп","Дп","Вп")
case(3..10)

2

Alexandr написал(а):

Хотелось бы, чтобы можно было задавать перечисления и диапазоны

В версии 2.х.х.х всё возможно. А в текущем движке менять что-либо не вижу смысла.

Эволюция будет идти в сторону расширения классов. Уже сейчас для объекта A.cls = B можно написать switch(A), и отловить это в case(B).
Во 2й версии любое значение будет иметь свой класс.
Про диапазоны чисел пока не думал, но если они появятся, то работать будут подобно классам.

3

То ли я не правильно пользуюсь возможностью "вычисление выражений непосредственно в командной строке (удобно для отладки)", то ли это ошибка в платформе:

> (коньфета*Ип)
object.form коньфета:title*1*ип - не найдена требуемая форма лексемы!
> (Алиса*Ип)
это мне непонятно...

Такое ощущение, что парсер переводит входную строку "(коньфета*Ип)" в нижний регистр "(коньфета*ип)", а потом сам же не может найти форму "ип" (т.к. язык регистрозависим). То же и во втором случае: "(Алиса*Ип)" -> "(алиса*ип)" и не может найти "алиса", т.к. она у меня с большой буквы определена.

Если дело действительно в платформе, то нельзя ли выражения в скобках не переводить в нижний регистр перед обработкой?

4

Ага, действительно связано с преобразованием региста.
Исправлю, недосмотрел.

5

При запуске ТОМа:

"... Наберите команду run (запустить), load (загрузить) или help (помощь)."

Для полноты картины не хватает "exit (выход)"

------

Нормализатор выходного текста - это очень хорошо, но если его нельзя отключить в нужных местах, то может привести к потере нервов квестописателя. Допустим, ему приспичит выводить заголовок локации с маленькой буквы, он напечатает: title = "маленькая локация". А нормализатор будет в заголовке локации выводить это с заглавной буквы. Квестописатель помучается немного (ну надо ему по задумке писать название этой локации с маленькой буквы! Очень надо, иначе смысл теряется) и уйдёт в RTADS, например. :surprise:
В общем, это заметка на будущее. ;)

6

Alexandr написал(а):

Для полноты картины не хватает "exit (выход)"

Если нажать на "help", там по идее должен быть "exit"  :D

Нормализатор не должен обрабатывать экранированные '\' знаки.
Т.е. "\маленькая локация" должна выводиться как "маленькая локация" (пока не проверял, экранирование добавлено недавно).

7

ASBer написал(а):

Если нажать на "help", там по идее должен быть "exit"

А я вот не поленился и залез в help: не работают "?", "Exit" и "start". :)

8

Alexandr написал(а):

не работают "?", "Exit" и "start".

мдя... для каждой из этих команд своя собственная причина, почему не работает  :D  забавно...

9

Попробую угадать:
? - потому что не слово.
Exit - потому что с заглавной буквы.
start - потому что есть только "запустить" и "run", а команда "start" не зарегистрирована.
Угадал?

Отредактировано Alexandr (2010-10-26 14:00:22)

10

В общем, угадал  :hobo:
исправлено в версии 0.9.4.5


Вы здесь » ТОМ2 - платформа для парсерных игр » Бета-тестирование » Мелкие доработки