Дата-Структуры

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Опытных) / Дата-Структуры

Страницы: 1  новая тема

Автор Сообщение

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 04-10-2006 11:53
Вобщем этот раздел и 3D я пока непонимаю(неприступал)
Стеки:
Насколько я понял они что-то вроде массивов
а вчем еще ихние плюсы?
и я непонял, если ds_stack_push(id,val) загружает значение в стек то какая функция считывает(то есть как переменной назначить значения из стека(если это надо вобще делать))

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

что-то такое ПРЕРЫВАНИЯ и РЕКУРСИВНЫЕ ФУНКЦИИ?

магистр
Группа: Сообщество GM
Сообщений: 305
Добавлено: 04-10-2006 13:07
DG Soft тебя что,похители инопланетяне?

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 04-10-2006 13:18
Пока нет, а что?

Дундук - не беспокоить!
Группа: Модераторы
Сообщений: 1435
Добавлено: 04-10-2006 17:44
Рекурсии - это когда одна процедура/функция вызывает саму себя. А вот прерывания... точно не знаю

магистр
Группа: Сообщество GM
Сообщений: 320
Добавлено: 04-10-2006 18:09
насколько я помню: прерываниями проц, или чтото там ещё опрашивает другие устройства. Например таймер системного времени опрашивается 18 раз в секунду. На прерывание как на нажатие клавиши можно повестить выполнение програмки.

Примерно так:)

А стэки по идее должны быть довольно быстрыми в плане обмена кучки данных. Специфическая вещь короче. Похожа на трубу в которую суют мячики (данные), а потом вытаскивают их обратно.

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 05-10-2006 18:33
А стэки по идее должны быть довольно быстрыми в плане обмена кучки данных

так где же обмен если я непойму как прочитать значение из стека?
где функция ?

магистр
Группа: Сообщество GM
Сообщений: 320
Добавлено: 05-10-2006 18:44
Там не так много функций чтобы ошибиться:)

ds_stack_pop(id) Returns the value on the top of the stack and removes it from the stack.
- берём верхнее значение и удаляем его из стэка. По аналогии с выстрелом - изымается патрон из рожка. А до этого мы патроны в рожок засунули, теперь вынимаем их.

ds_stack_top(id) Returns the value on the top of the stack but does not remove it from the stack.
- аналогично, но значение остаётся. Т.е. мы читеры такие поюзали патрон для выстрела, но количество патронов в рожке не убавилось.

Это можно использовать к примеру для переворота одномерного массива: мы считываем все данные из массива в стек от M[0] до Mх[99] (к примеру 99 ) А потом прогоняем массив в ТОМ ЖЕ порядке от 0 до 99, но значения берём из стека в котором значения идут в перевёрнутой последовательности относительно изначального массива.

Первый зашёл - последний вышел. Такой принцип работы.

магистр
Группа: Сообщество GM
Сообщений: 316
Добавлено: 06-10-2006 12:39
Кстати интересная технология для "перемотки" игрового времени... только памяти жрать много будет...

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 06-10-2006 12:54
Кстати интересная технология для "перемотки" игрового времени... только памяти жрать много будет...

Может отмотки. А что точно!!!

То есто записывать координаты в масив а потом перевернуть масив
стеком, похоже на логичное применение для стека
только надо для каждого объекта создавать и записывать масив это думаю трудно и долго
лучше пользоваться тем методом что в примере Зубилы в разделе повтор

магистр
Группа: Сообщество GM
Сообщений: 316
Добавлено: 07-10-2006 08:15
В примере зубилы игра идёт вперёд, а чтобы сделать перемотку назад надо немного поменять код... (там "a +=1" а надо "a -=1" и строку - сразу последнюю ставить...)

Дундук - не беспокоить!
Группа: Модераторы
Сообщений: 1435
Добавлено: 07-10-2006 16:59
Стеки не для этого предназначены)))))))))))))))) И это ты точно не сделаешь))))))))

магистр
Группа: Сообщество GM
Сообщений: 320
Добавлено: 07-10-2006 19:03
извращенцы ё-маё :) В некоторых машинах стэк - это вообще отдельная память для быстрого обмена даннами и положить туда можно считанные байты:)

Тут могла быть ваша реклама
Группа: Сообщество GM
Сообщений: 1014
Добавлено: 07-10-2006 22:41
Мдам... пользуйся для перемотки обычными массивыми и не трогой то, что плохо знаешь. Что-то я ничего не видел в ГМ про рекурсию(ну смысле я прекрасно знаю что это такое и как просто это делать), интересено с чего это вдруг DG Soft про неё спросил?
DG Soft, если интересно как это делается могу дать очень показательный пример

Дундук - не беспокоить!
Группа: Модераторы
Сообщений: 1435
Добавлено: 08-10-2006 15:10
Рекурсий в гм нет. Как они работают, очень легко, но вот реализовать... А спровил, потомучто так написано в справке (слава алаху, хоть кто-то читает!:))

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 09-10-2006 11:50
Да это я так трепаюсь про отмотку времени с стеками конешно это похоже на бред
В некоторых машинах стэк - это вообще отдельная память для быстрого обмена даннами и положить туда можно считанные байты:)
Стеки мы проходили по микропроцесорной технике
насколько я помню они использовались как часть технологий вместе
с теми допотопными(первыми) процесорами, да как отдельная память
для быстрого обмена данных, ну конечно думаю они и сейчас есть(это я так вспомнил учебу)

интересено с чего это вдруг DG Soft про неё спросил?

Хм..Странный вопрос, аналогично спросить у тебя зачем ты учиш GML

DG Soft, если интересно как это делается могу дать очень показательный пример

(якщо ваша ласка) Давай я жду

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 09-10-2006 15:11
Вобще-то я понял свою ошибку я пытаюсь из чего нового, в данном случае из стеков, выжать что-то сверх и непытаюсь просто их поюзать, ну это через малый опыт в программировании(отмазка)

Думал в тех местах где можно реализовать стек для обмена, можно и без него обойтись,тепер понял они просто для УДОБСТВА

В общем я придумал один способ, доработаю поделюсь

Страницы: 1  новая тема
Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Опытных) / Дата-Структуры

Отвечать на темы в данном разделе могут только зарегистрированные пользователи

Отвечать на темы могут только зарегистрированные пользователи

KXK.RU