Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
06.12.2007 18:00

Hind
Участник
Откуда: Балашиха
Зарегистрирован: 24.10.2007
Сообщений: 135
Вебсайт

Не нервируйте меня! Мне скоро негде будет прятать трупы!

Непонятки с наследованием

Разве noun не наследуется? Кажется, я это уже применял - и все работало.
Но вот сейчас, когда я писал код для goraph, появился тупой глюк.

Итак, код простейший:

Код:

#include <advr.t>
#include <stdr.t>
#include <errorru.t>

startroom: room
    sdesc = "Спальная комната"
    ldesc = "Единственная комната моей квартиры."
;

vial: item
    location = nil
    sdesc = "пузырёк"
    rdesc = "пузырька"
    ddesc = "пузырьку"
    vdesc = "пузырёк"
    tdesc = "пузырьком"
    pdesc = "пузырьке"
    noun = 'пузырек' 'пузырька' 'пузырьку' 'пузырьком' 'пузырьке' 'пузырьку#d' 'пузырьком#t'
    ldesc = "На свету небольшой пузырёк длиной с палец поблескивает гранями."
    isHim = true
;

vial1: vial
    location = startroom
;

Получаем:

>смотреть
Спальная комната
    Единственная комната моей квартиры.
    Ты видишь здесь пузырёк.

>взять пузырёк
Я не вижу здесь объект "пузырек".

>взять пузырек
Я не вижу здесь объект "пузырек".

>

Это что? roll
Пробовал с разными версиями русских библиотек.

Самое интересное, что если в наследнике явно прописать noun:

Код:

vial1: vial
    location = startroom
    noun = 'пузырек' 'пузырька' 'пузырьку' 'пузырьком' 'пузырьке' 'пузырьку#d' 'пузырьком#t'
;

то все прекрасно...

Неактивен

0    0    #2
06.12.2007 18:36

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Непонятки с наследованием

Надо написать

Код:

class vial: item

тогда все будет нормально. Тебе нужно понять разницу между классом объектов и экземпляром класса. Ты создал экземпляр класса item. А тебе надо создать класс-наследник от item.

Неактивен

0    0    #3
06.12.2007 23:55

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Непонятки с наследованием

Меня больше удивило, что TADS позволяет наследование от экземпляра класса... Бред полный с точки зрения ООП.

Неактивен

0    0    #4
07.01.2008 18:57

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Непонятки с наследованием

Ну уж не больший бред, чем отсутствие инкапсуляции. Но авторы игр все же не программисты...

Хм. Ты про то, что нельзя скрывать методы и свойства?

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru