Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: RM2k3: непонятки с random'ом

RM2k3: непонятки с random'ом 12 года 8 мес. назад #53821

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • Организатор конкурсовПроект месяца 1 местоПроект месяца 3 место2 место 3 место2 место Сбитая кодировкаПроект месяца 2 место3 место ГотвПрограммист JavaScript Победитель Сбитой кодировки
Собственно, ситуация такая. Требуется случайным образом выбрать одну из двух веток ивента. Не нашёл ничего лучше, как сгенерировать случайное число от 1 до 2 вот таким образом:
random.PNG

На практике (специально отслеживал через ф9) в этот момент сначала генерируется мусор (наблюдал там числа 256, 48, 20...), а затем стабильно каждый раз присваивается единица. Собственно, вопрос: какого чёрта? Если бы ещё два-три раза было так, ещё ничего, но я пробовал раз пятнадцать и двойки ни разу не увидел.
З.Ы. Написал и сразу решил, что можно сделать иначе: сгенерировать число от 1 до, например, 1000 и взять остаток от деления на 2. Но ответ всё равно получить хотелось бы - ради понимания происходящего :)

upd: насчёт мусора сам дурак (буквально следующая команда после ветвления уже записывает в эту переменную другой random), но почему всё время выбиралась ветвь с единицей - хотелось бы понять.
Жуть болотная, на лапках, в тапках и с пулемётом...
Последнее редактирование: 12 года 8 мес. назад от Cerberus.
Администратор запретил публиковать записи гостям.

Re: RM2k3: непонятки с random'ом 12 года 8 мес. назад #53825

  • sando
  • sando аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 862
  • Спасибо получено: 925
  • Организатор конкурсовПаладинПисатель3 местоПисатель 2 место2 место ОраторУчительХудожникПобедитель конкурса
Да ты все сделал правильно, но тут могла быть ошибка в уловии запуска ивента (там стандартно стоит Больше или Равно, кажется, надо поменять чтобы было равно). На всякий случай выкладываю демку по этому вопросу.

minus.com/l4oMfsMzPk14P
vk.com/sando_rpgmaker - пустая болтовня (приходите)
Администратор запретил публиковать записи гостям.

Re: RM2k3: непонятки с random'ом 12 года 8 мес. назад #53826

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • Организатор конкурсовПроект месяца 1 местоПроект месяца 3 место2 место 3 место2 место Сбитая кодировкаПроект месяца 2 место3 место ГотвПрограммист JavaScript Победитель Сбитой кодировки
Хм, в моей версии мэйкера по умолчанию стоит "равно"... Кроме того, с другой генерацией (от 1 до 1000 и остаток по 2) работает как надо, выдаёт и то, и другое. За демку спасибо, посмотрю.

upd: может ли разное поведение быть связано с тем, что я использовал сгенерированную переменную в условии непосредственно в действиях ивента, а не в условии запуска? И да, вполне возможно, что у меня изначальный баг был вовсе и не багом - в демке тоже раз шесть подряд выпадала единица. Издержки рандома :)
Жуть болотная, на лапках, в тапках и с пулемётом...
Последнее редактирование: 12 года 8 мес. назад от Cerberus.
Администратор запретил публиковать записи гостям.

Re: RM2k3: непонятки с random'ом 12 года 8 мес. назад #53827

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 913
  • Спасибо получено: 566
  • Программист JavaScript ВетеранПрограммист RubyДаритель СтимкеяОратор
Поставь от 1 до 3 и будет все норм. Наверно. :)
Администратор запретил публиковать записи гостям.

Re: RM2k3: непонятки с random'ом 12 года 8 мес. назад #53836

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • 3 местоОрганизатор конкурсов2 место ПисательРазработчикПобедитель конкурсаПисатель 2 место
Шесть раз подряд - это, действительно, могут быть издержки рандома.
В конце концов,
1/64 <> 0
С такой же вероятностью можно Warmech'а встретить в Летающей крепости. А мне их пришлось убивать больше одного раза.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.172 секунд