PureBasic - форум

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

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


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Реализация динамического массива внутри экземпляра структуры


Реализация динамического массива внутри экземпляра структуры

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

1

Листинг:

Код:
;Описание структуры
Structure CFigure
  
  ;Имя
  name.s
  
  ;Характеристики (базовые параметры)
  strength.b ;Сила
  endurance.b ;Выносливость
  intelligence.b ;Интеллект
  charisma.b ;Харизма
  luck.b ;Удача
  agility.b ;Ловкость
  
  ;Показатели (неактивные параметры)
  current_health.l ;Текущее здоровье
  max_health.l ;Максимальное здоровье
  armor_factor.l ;Коэффициент брони
  current_weight.l ;Текущая масса инвентаря
  max_weight.l ;Максимальная масса инвентаря
  action_points.l ;Очки действия
  reputation.l ;Репутация

  ;Навыки (производные параметры)
  cold_weapon.l ;Холодное оружие
  projectile.l ;Метательное оружие
  no_weapon.l ;Без оружия
  shoot_weapon.l ;Стреляющее оружие (огнестрельное и некоторое метательное оружие [лук и арбалет])
  science.l ;Наука
  computers.l ;Компьютеры
  repair.l ;Ремонт
  breaking.l ;Взлом
  theft.l ;Кража
  barter.l ;Торговля
  belief.l ;Убеждение
  lie.l ;Ложь
  
  ;Достижения (бонусные параметры)
  battle_master.b ;Мастер боевых искусств
  super_person.b ;Сверхчеловек
  athlete.l ;Силач
  weapon_master.b ;Специалист по оружию
  doctor_of_science.b ;Доктор наук
  programmer.b ;Программист
  computer_user.b ;Оператор ЭВМ
  thief_in_law.b ;Вор в законе
  pickpocket.b ;Карманник
  speculator.b ;Аферист
  
  ;Инвентарь
  *armor ;Одетая броня или одежда
  *current_weapon ;Текущее оружие в руках
  *Bag_Item[120] ;Массив указателей на предметы
  
EndStructure

Я пишу игру (что-то вроде рогалика) на PB, и у меня возникла проблема с реализацией инвентаря. Дело в том, что по игровым правилам, персонаж (фигура) может носить любое число предметов, суммарная масса которых (current_weight) не превышает максимально допустимой (max_weight). Однако, я столкнулся с проблемой: в PB нельзя описывать внутри структуры динамические массивы данных (связные списки, карты), и это не дает мне нормально реализовать инвентарь (динамический массив ссылок на предметы из глобального множества предметов сцены). Я могу реализовать что-то вроде линейного списка (ссылка на предыдущий, ссылка на следующий, значение), но это по-сути изобретение велосипеда, к тому-же требует реализации отдельной структурой. А я хотел бы привязать инвентарь строго к этой структуре. Как это можно сделать?

Отредактировано Dik_K (30.05.2013 23:41:03)

0

2

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

в PB нельзя описывать внутри структуры динамические массивы данных (связные списки, карты)

Можно.

Код:
Structure x
  Array MyArray.l(0)
  List MyList.l()
  Map MyMap.l()
EndStructure

Даже в справке есть пример списка в структуре. http://purebasic.com/documentation/refe … tures.html
На русском. http://purebasic.ru/manual.php?id=1110&lng=rus

0

3

Видимо, я читал устаревший учебник и устаревшую справку, спасибо за помощь.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Реализация динамического массива внутри экземпляра структуры