- Сообщений: 250
- Спасибо получено: 50
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
Странная работа генератора случайных чисел
- tvorimvsevmeste
-
Автор темы
- Не в сети
- Давно я тут
-
Вот что оно периодически выдаёт:
Это вообще как может быть?
Наверное причина всё же в чём-то другом. Но в чем?
Подскажите пожалуйста, если знаете причину!
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- tvorimvsevmeste
-
Автор темы
- Не в сети
- Давно я тут
-
- Сообщений: 250
- Спасибо получено: 50
2. Глюк одинаково выдает и стимовская и палёная версия с торрентов.
3. Естественно, не факт, что выбросит с первого запуска. Это случайное число. Поэтому выброс "диких" чисел происходит изредка, с раза 10-15-ого.
4. оставил одну карту и всё: yadi.sk/d/8pt8ogj7MMB4RA
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- tvorimvsevmeste
-
Автор темы
- Не в сети
- Давно я тут
-
- Сообщений: 250
- Спасибо получено: 50
Однако все же интересно в чём проблема?
Что, штатное средство для генерации случайных значений использовать нельзя вообще?
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
KageDesu пишет:
Code:Math.round(Math.random() * (MAX - MIN)) + MIN
можно подсчитать насколько верно работает рандом по этой формуле:
запустил три раза в браузере,вывелось:
["вне выборки", 152, 349, 319, 180]
["вне выборки", 161, 322, 341, 176]
["вне выборки", 169, 322, 341, 168]
таким образом, максимальное и минимальное число будет выпадать почти в 2 раза реже,чем остальные.
всё из-за округления:
- до единицы округлятся числа с 1 до 1,49
- до четверки округлятся числа с 3,5 до 4
- до двойки округлятся числа с 1,5 до 2,49 (в два раза больше чисел)
- до тройки округлятся числа с 2,5 до 3,49 (тоже в два раза больше чисел)
что делать?
чтобы это исправить надо к максимальному прибавить единицу к разнице максимального и минимального числа и затем отнять половинку от минимального, чтобы расширить ему диапазон:
запустил три раза, вывелось:
["вне выборки", 255, 236, 250, 259]
["вне выборки", 255, 256, 239, 250]
["вне выборки", 259, 249, 247, 245]
итого - правильный рандом.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- tvorimvsevmeste
-
Автор темы
- Не в сети
- Давно я тут
-
- Сообщений: 250
- Спасибо получено: 50
Вопрос был что за чудеса со ШТАТНЫМ рандомизатором!
А не как изобрести костыли, непонятные обычному пользователю RPG Maker-a!!!
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- peter8031983
-
- Не в сети
- Давно я тут
-
- Добро-вещь относительная.
ТЫ ОТКРЫЛ ЯЩИК ПАНДОРЫ!tvorimvsevmeste пишет: Уважаемые эксперты, погодите!
Вопрос был что за чудеса со ШТАТНЫМ рандомизатором!
А не как изобрести костыли, непонятные обычному пользователю RPG Maker-a!!!
Я не качал демку, нет МВ под рукой, но три года работал с рандомом МВ и ни разу не видел таких проблем. Могу сказать, что чаще всего дело в собственных кривых ручках. Например та же переменная фигурирует ещё в каком процессе параллельном. Например каком нить выяснении координат. В отличии от прошлых версий, МВ параллельные процессы работают реально параллельно. Например даже во время вывода текста, чего не было раньше...
Слава богу есть кнопка Найти и там можно посмотреть куды ещё ты сунул эту переменную.(не работает, если сунул кодом конечно)
Как-то так...
Ну и не исключено, что могли накосячить и сами разрабы. Они отличаются редкой рукожопостью и доказывают это от версии к версии, отчего я и ушёл с МВ по большей части...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Помимо указанного события:
есть ещё одно:
которое задаёт эту же переменную. И если первое автоматическое событие задаёт значение переменной один раз, то другое параллельное событие обновляет его постоянно и именно результат этого события выводится в сообщении!!!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- tvorimvsevmeste
-
Автор темы
- Не в сети
- Давно я тут
-
- Сообщений: 250
- Спасибо получено: 50
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- tvorimvsevmeste
-
Автор темы
- Не в сети
- Давно я тут
-
- Сообщений: 250
- Спасибо получено: 50
Вот голый пример:
yadi.sk/d/oBziLI5mvU5XpQ
Если кратко, то для того, чтобы при выходе с карты не сохранялись состояние локальных переключателей, использую переменную, которую инициализирую генератором случайных чисел.
И никакая параллельность выполнения, кстати, не мешает: значение переменной меняется только в одном месте, а на получение значения переменной параллельность обращений не влияет!
Затем используем if-elseif, который обеспечивает комбинация страниц в событиях со сравнением использующем >=
Конечно, записывать надо именно в такой последовательности – наоборот, ЕСТЕСТВЕННО, будет неправильно!
Так что этим примером можно пользоваться.
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
