![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 17.06.2012
Сообщений: 1,015
|
![]()
Лабиринт и МЫ
Игра в лабиринт QB64 автоматизирована мной и сама играет несколько вариантов: ходы по списку MazeCode или ходы случайные MazeStep или ходы оптимальные MazeLab и вдобавок MazeRnd синтезирует случайные лабиринты MAZErnd.bas = случайные MAZElab.bas = правильно MAZEkino.bas = смена MAZEcode.bas = коды MAZEstep.bas = ходы Новейшая программа MazeLab решает лабиринты задавая следующий ход зависящий от хода предыдущего и от вида препятствия пещеры: стена или угол Если препятствие без угла тогда выбор направления случайный перпендикулярно и начальное направление случайное и из тупика выходит обратно плюс есть время и контроль ![]() ![]() ![]() ![]() Кодировка направления дальновидная 0 > / 1 < / 2 V / 3 ^ для выбора случайного направления вида 2 + Int(Rnd * 2) показывает вероятность выигрыша 2 в степени свободных ходов и вероятность 1/64 реально трудная Причём случайные ходы могли создать ходов шифр не подряд Создан внутренний массив и каждое перемещение до стены проверяют 4 * 4 = 16 условий и встроена мини карта массива плюс возможно настроить ходы назад если стена Программировал буквально 1 день введя контрольные точки Начальный лабиринт 7-й уменьшается до 1-го и далее 10-й Ранние версии программы добавлю в тему позже где давно у меня шар оставляет следы на поле Возможно создавать свои лабиринты и решать задав номер и наверняка возможны случайные лабиринты пещеры Весело смотреть как программа заходит не в ту дверь сразу или на крайних очевидных ходах и лабиринты из книг ещё не проверял На другие языки проще перевести мой алгоритм массива с мини картой В принципе реально проверять массив если проходили угол 3-жды значит тупик стартовать заново Версия MazeRnd синтезирует случайный лабиринт каждый раз и в принципе легко настроить повторение лабиринта несколько раз если вместо обнуления массивов добавлять в конец и не учитывать Версия для Эксцель Excel программируется легко наверняка Принципы похожи на XONIX ![]() ![]() Все анимации малые и ещё на форуме есть другие темы про лабиринты задав поиск включая темы: лабиринт Важные фрагменты кода расшифрую позже в теме
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
Последний раз редактировалось сфинкс; 24.09.2024 в 17:59. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,358
|
![]()
Нормально.
Но есть волновой алгоритм и ... Предлагаю посмотреть тут: https://yandex.ru/video/preview/5728115302771088443 и далее: https://yandex.ru/video/preview/6426241303817973253 Там есть и продолжение. ![]()
Как-то так, ...
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 17.06.2012
Сообщений: 1,015
|
![]()
Автоматизация лабиринта MazeRND
Реально шарик летает безцельно и звезда пересекается случайно Автор программы зашифровал лабиринт в строку Код:
где delta - направление движения 0 > / 1 < / 2 V / 3 ^ Код:
и суммируется строка puz$ Код:
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 17.06.2012
Сообщений: 1,015
|
![]()
Чтобы дальше разобрать puz$ в малый лабиринт слева
Код:
Код:
На другие языки реально перенести мой малый лабиринт без оформления графики Практически игра Змейка в лабиринте Далее версия про коды ходов и вспомнилась автоматизированная мной игра 1980-х где персонаж собирает призы избегая врагов
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 17.06.2012
Сообщений: 1,015
|
![]()
Коды ходов задаются с целью избежать повтора хода
чтобы назад казалось бы не ходить однако шарик в углу поворачивает не туда и летит назад Код:
выигрываются подставив внезапно правильные шифры If puzzle = 7 Then ok$ = "2031213020312022031213020312022031 21302031202203121302" If puzzle = 8 Then ok$ = "0212131213030312020212131213030312 02021213121303031202" и далее уровни простые 6 5 4 3 2 1 и далее уровень 10 трудный зато версия MazeKINO меняет авторские уровни случайно puzzle = 1 + Int(Rnd*10) Считываем текущий код хода delta = Val(Mid$(ok$, damax - sum, 1)) без контроля при достижении стенки и счётчик ходов показывает 2 в степени вариантов поворотов Даже трудный уровень решают 66000 ... 78000 ходов ![]()
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Лабиринт | ЧАК | Помощь студентам | 3 | 28.02.2012 14:08 |
Лабиринт | keng | Помощь студентам | 9 | 14.09.2011 06:34 |
Лабиринт. | ValinRam | Помощь студентам | 1 | 01.05.2011 08:47 |
Лабиринт | GBTA | Общие вопросы C/C++ | 2 | 08.07.2010 12:03 |