Game Maker - создание игр | HellRoom Games
Ноябрь 16, 2025, 02:42:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как работает random?  (Прочитано 6985 раз)
0 Пользователей и 1 Гость смотрят эту тему.
IMHO
Участник
****

Репутация: 22
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio Master
Деятельность: Всего понемножку
Сообщений: 214

Все невозможное - возможно!!!


« : Октябрь 27, 2014, 09:33:13 »

Привет!

Может знает кто, как устроены функции random...

Random - выбранный наугад, случайный; беспорядочный, т.е если брать irandom(5), то функция будет выдавать значения от 0 до 5 в случайном порядке, правильно?

Но на практике замечено, что при каждом новом запуске проекта функция выдает 3.
При программном перезапуске игры (game_restart()), функция выдает 0, 0, 2, 1, 4, 0 и т.д. постоянно, в неизменной последовательности...

Т.е рандом - это как бы и не рандом?

Как можно реализовать действительную случайность?
Записан

         
hitrok
Michael Peaceman
GM Pro user
*

Репутация: 203
Offline Offline

Пол: Мужской
Награды:
1000 сообщений!За постоянность! [50 дней на форуме]За лояльность! [+150 репутации]
API: GameMaker Studio Pro
Деятельность: Если есть исходник, я помогу!
Сообщений: 1205


MEOW!


WWW
« Ответ #1 : Октябрь 27, 2014, 09:37:32 »

Поставить randomize() в самом начале. Или я не понял вопрос...
Записан

Dmi7ry
Гл. Администратор
*

Репутация: 1379
Offline Offline

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626



WWW
« Ответ #2 : Октябрь 27, 2014, 10:01:08 »

Т.е рандом - это как бы и не рандом?
Да. Это называется псевдослучайные числа. То есть генератор выдаёт последовательность случайных чисел, но при необходимости, эту последовательность можно повторить.
Сама последовательность зависит от так называемого "зерна" (seed), то есть при одинаковом seed будет выдаваться одна и та же последовательность.
Вышеупомянутая функция randomize() задаёт случайный seed (им также можно управлять функциями random_set_seed/random_get_seed).
По умолчанию в GM задаётся одно и то же значение seed для того, чтобы при необходимости можно было заниматься отладкой параметров, завязанных на генераторе случайных чисел.
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
IMHO
Участник
****

Репутация: 22
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio Master
Деятельность: Всего понемножку
Сообщений: 214

Все невозможное - возможно!!!


« Ответ #3 : Октябрь 27, 2014, 10:04:52 »

Поставить randomize() в самом начале. Или я не понял вопрос...
Видимо понял.

Помогло во всем!

Все гениальное просто. Спасибо!

Добавлено: Октябрь 27, 2014, 10:06:54
Т.е рандом - это как бы и не рандом?
Да. Это называется псевдослучайные числа. То есть генератор выдаёт последовательность случайных чисел, но при необходимости, эту последовательность можно повторить.
Сама последовательность зависит от так называемого "зерна" (seed), то есть при одинаковом seed будет выдаваться одна и та же последовательность.
Вышеупомянутая функция randomize() задаёт случайный seed (им также можно управлять функциями random_set_seed/random_get_seed).
По умолчанию в GM задаётся одно и то же значение seed для того, чтобы при необходимости можно было заниматься отладкой параметров, завязанных на генераторе случайных чисел.

Узнал что-то новое, спасибо)
Чем то майнкрафт вспомнился!
Записан

         
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.086 секунд. Запросов: 29.