Пятница, 19 Апреля 2024, 22:14

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » [GMS] Перемешивание ds_map
[GMS] Перемешивание ds_map
poksДата: Среда, 02 Марта 2016, 11:01 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Всем доброго времени суток.
Такой вопрос. Можно ли каким-нибудь образом взять случайную пару ключ-значение из ds_map? Возможно ли их перемешать, как в случае с ds_list, например, а потом уже взять самую первую пару ключ-значение? Смотрел в справке, не обнаружил таких функций.


YellowAfterlifeДата: Среда, 02 Марта 2016, 11:58 | Сообщение # 2
Сейчас нет на сайте
Код
var k = ds_map_find_first(map);
repeat (floor(random(ds_map_size(map)))) k = ds_map_find_next(map, k);
var v = ds_map_find_value(map, k);
// в k, v теперь случайные ключ+значение из map

Вкратце, функциями перебора пар ключей-значений находится случайная пара.

"Перемешивания" ds_map не бывает, потому что порядка у пар нет.


OpenGOOДата: Среда, 02 Марта 2016, 12:31 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Как уже было написано, ds_map перемешать невозможно, но можно вот что сделать. Сохранить ключи из ds_map в ds_list и перемешать их.

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » [GMS] Перемешивание ds_map
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг