Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
24.10.2007 16:39

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

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

Как узнать принадлежность объекта к списку?

Можно ли упростить конструкцию вида:
if (Me.location = room1 or Me.location = room2 or ...)
?

Например, быстро проверив принадлежность объекта Me.location к списку комнат?
Способ с циклом очевиден, но, может быть, язык предлагает лучший инструмент?
Заранее извиняюсь, если вопрос глупый.

Спасибо smile

Отредактировано Hind (24.10.2007 16:40)

Неактивен

0    0    #2
24.10.2007 20:56

uux
Участник (+887, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1625

Re: Как узнать принадлежность объекта к списку?

Hind написал:

Можно ли упростить конструкцию вида:
if (Me.location = room1 or Me.location = room2 or ...)
?

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

Имеется встроенная функция find, которая ищет элемент в списке или подстроку в строке и возвращает порядковый номер элемента в списке (или nil, если он не найден).

В Вашем случае оно могло бы работать так:

Код:

local RoomList;
RoomList:=[room1 room2 room3 room4 room5 room6]
if(find(RoomList, MyRoom)<>nil)
  {...
  }

При этом, если MyRoom равна room3, функция вернет 3, а если MyRoom отсутствует в RoomList, то nil.

Hind написал:

Заранее извиняюсь, если вопрос глупый.

Эх... Хотел было побрюзжать на тему "читайте мануал, господа", но вспомнил, что эта глава еще не переведена;).

Неактивен

0    0    #3
28.10.2007 16:33

uux
Участник (+887, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1625

Re: Как узнать принадлежность объекта к списку?

Gremour написал:

Лично мне вариант решения проблемы с помощью наследования кажется естественнее.

В данном конкретном случае да, но есть задачи, которые удобнее решать именно проверкой списка, и вот тут-то функция find крайне полезна...

Неактивен

Powered by PunBB
© copyright 2001–2026 iFiction.Ru