Войти на сайт

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

ТЕМА: Ошибки в алгоритме генерации лабиринтов [RMXP]

Ошибки в алгоритме генерации лабиринтов [RMXP] 13 года 4 дн. назад #44807

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Победитель конкурсаРазработчикОрганизатор конкурсов3 место2 место ПисательПисатель 2 место
Делаю работающий на эвентах генератор лабиринтов. Составил алгоритм действий, но он работает как-то неправильно. Выходы на новой клетке идут туда, куда запрещено, курсор, несмотря на все ограничения, выходит за пределы диапазона 1-5, несмотря на все ограничения, и всё такое. Где я мог ошибиться?



Часть сообщения скрыта для гостей. Пожалуйста, авторизуйтесь или зарегистрируйтесь, чтобы увидеть его.

На выходе должно получиться до двадцати пяти переменных, в каждой из которых после перевода в бинарную систему счисления последние четыре цифры определяют расположение выходов.
Последнее редактирование: 13 года 4 дн. назад от James.
Администратор запретил публиковать записи гостям.

Ошибки в алгоритме генерации лабиринтов [RMXP] 13 года 3 дн. назад #44967

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Победитель конкурсаРазработчикОрганизатор конкурсов3 место2 место ПисательПисатель 2 место
Спрошу чего попроще. Я почти разобрался с алгоритмом, но теперь надо оптимизировать алгоритм выбора направления. Иначе wait 1 frame (Сделанный, дабы обеспечить возможность работы при запуске генерации параллельным эвентом) задерживает слишком надолго.

Вот в чём суть:
Есть некоторая клетка с количеством выходов от одного до четырёх. Нужно, используя средства команд эвентов, выбрать случайным образом один из этих выходов таким образом, что:
- Соседняя клетка в стороне этого выхода пуста
- Выход существует - т.е. на этой клетке с этой стороны есть выход

Иными словами, если упростить, получится, что надо отсечь неподходящие варианты и из оставшихся выбрать один. Проблема в том, что в мейкере диапазон для получения случайного числа нельзя изменить. Если задать "от 0 до 3", то потом никак нельзя сделать его "от 0 до 2"
Администратор запретил публиковать записи гостям.

Ошибки в алгоритме генерации лабиринтов [RMXP] 13 года 3 дн. назад #44969

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Победитель конкурсаРазработчикОрганизатор конкурсов3 место2 место ПисательПисатель 2 место
Вопрос:

- Вероятность выбора любого числа A из диапазона 0..(N-1)

и

- Вероятность получения этого числа A при получении остатка от деления случайного числа B из диапазона 0..X (X делится на N) на это N

равны?
Последнее редактирование: 13 года 3 дн. назад от James.
Администратор запретил публиковать записи гостям.

Ошибки в алгоритме генерации лабиринтов [RMXP] 13 года 3 дн. назад #44971

  • mamonth
  • mamonth аватар
  • Вне сайта
  • Мастер
  • Сообщений: 216
  • Спасибо получено: 21
  • 3 место
не думаю. тот же остаток ты можешь получить два или более раз, те вероятность получения такого остатка будет больше.

пример: 50 mod 7 = 1
50 mod 49 = 1
THIS IS SO-VI-ET U-NI-O-N!

Need teh butta, gonna maek toawst!
Администратор запретил публиковать записи гостям.

Ошибки в алгоритме генерации лабиринтов [RMXP] 13 года 3 дн. назад #44976

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Победитель конкурсаРазработчикОрганизатор конкурсов3 место2 место ПисательПисатель 2 место
Поэтому я и уточнил, что X делится на N
Администратор запретил публиковать записи гостям.

Ошибки в алгоритме генерации лабиринтов [RMXP] 13 года 3 дн. назад #44977

  • mamonth
  • mamonth аватар
  • Вне сайта
  • Мастер
  • Сообщений: 216
  • Спасибо получено: 21
  • 3 место
я, наверное, недопонимаю.

возьмем Х=100, N=25

выпадает В=26

26 mod 25 = 1

Но! Может выпасть B=51

51 mod 25 = 1

или я точно что то не понимаю
THIS IS SO-VI-ET U-NI-O-N!

Need teh butta, gonna maek toawst!
Администратор запретил публиковать записи гостям.

Ошибки в алгоритме генерации лабиринтов [RMXP] 13 года 3 дн. назад #44979

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Победитель конкурсаРазработчикОрганизатор конкурсов3 место2 место ПисательПисатель 2 место
Суть в том, что, насколько я понимаю, каждый остаток можно получить одинаковое число раз, поэтому шансы равны.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.167 секунд