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

Объявление

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


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

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

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



Кузнец это человек?

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

1

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

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

Вопрос: От чего тогда должны наследоваться все эти классы?

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

P.S. Вопрос оформил скорее для себя самого, но если есть идеи, пишите!

UPDATE: Вопрос решился через операцию подобия; с.м. документацию к платформе.

2

Ты через-чур усложняешь, на мой взгляд. Если кузнец - это профессия, то пусть он наследуется от профессии. Игрописатель сам разберётся, какой кузнец ему нужен, и сделает его от человека или гнома. Вообще кузнец в стандартной библиотеке - это лишнее. Есть там такое слово, зачем к нему класс приделывать?

3

Класс там не мешается, а код игры сократится.
И есть еще идеи как это в дальнейшем можно использовать.

Что касается самого вопроса, то вроде бы определился.
Создал 2 класса: "человек" и "@человек". Все что может быть только человеком, наследуется от первого класса, все что может быть не только человеком - от 2го.

В реалистичном сетинге нужно в самом начале прописать:

Код:
@человек это человек

и далее создавать кузнеца без указания его расы:

Код:
кузнец{}

В фэнтезийном сетинге @человек это уже не только человек, и кузнец создаётся чуть длиннее:

Код:
кузнец{ это гном }

4

Код:
кузнец{}

И ради этого стоило так заморачиваться? Всё-равно, создавая кузнеца, пользователь перетащит класс "человек" (или "гном", если надо) в дерево проекта и сразу получит то что надо. Вряд ли он будет создавать кузнеца с нуля не указывая класс, надеясь что платформа сама определит расу любого существа.
Ты действительно всё слишком усложняешь. Пользователю даже полезнее задать такие мелочи самому, чтобы быть уверенным в правильности наследования, чем запоминать всё то, как там в стандартной библиотеке завязано.

5

Ты опять создаёшь слишком много условностей вроде "@человек это человек". Ну совсем не очевидная команда. Дай платформе хоть немного побыть молотком. А то она у тебя опять начинает закручивать гвозди.