С Новым годом! Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/59: Рейтинг темы: голосов - 59, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9

Алгоритм для решения задачи с колбочками

10.08.2020, 18:58. Показов 14716. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Набрёл на такую игру (таких игр не мало, это один из представителей) - https://play.google.com/store/... ort.Puzzle
Есть идеи какой алгоритм подойдёт для генерации проходимых или проверки решаемости случайно сгенерированных уровней?
Видел уровни с 13 колбами, 11 из которых были заполнены шарами 11 цветов.

Буду рад любым идеям. Есть ощущение, что уже давно придуманы/прописаны алгоритмы для решения подобных задач, просто я с ними раньше не работал.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.08.2020, 18:58
Ответы с готовыми решениями:

алгоритм для решения задачи с рукопожатиями
Здравствуйте! Столкнулся с задачей где нужно вычислить число уникальных рукопожатий при заданном N (человек). Я не очень опытен в...

Существует ли алгоритм для решения такой задачи?
Есть 2 таблицы Первая это документы поступления товаров Дата Номер Сумма 01.03.19 П1 1500 01.03.19 П2 3200 ...

Проверяющий алгоритм и сертификат для решения задачи по связному графу
Добрый день, Очень прошу помощи разобраться в вопросе по связному графу. Наверняка задача крайне легкая, но я не могу разобраться :( ...

11
32 / 28 / 5
Регистрация: 02.08.2020
Сообщений: 132
Записей в блоге: 1
10.08.2020, 20:40
ANTOH24, меня в гугле забанили, помочь не могу....
да и не культурно кидать ссылки, а не описать задачу своими словами
0
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9
10.08.2020, 20:47  [ТС]
Согласен, поступил некрасиво, постараюсь исправить ситуацию.

Есть N колбочек, от 4 до 11 штук, заполненных шарами, а также 2 свободные. Шары разноцветные, по 4 шара одного цвета. В уровне с 6 заполненными колбами будет 6 цветов. В каждую колбу можно вместить только 4 шарика
Переставить шар можно только в пустую колбу или в колбу, в которой меньше 4 шаров и верхний шар того же цвета, что и переставляемый. Победа в уровне достигается сортировкой всех шаров по цветам в колбах. На скриншоте старт уровня.
Миниатюры
Алгоритм для решения задачи с колбочками  
0
 Аватар для LegionK
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
11.08.2020, 17:54

Не по теме:

гений маркетинга


Цитата Сообщение от ANTOH24 Посмотреть сообщение
Есть идеи какой алгоритм подойдёт для генерации проходимых или проверки решаемости случайно сгенерированных уровней?
Что-то мне подсказывает, что при таких ограничениях это разрешимо всегда. Принцип Дирихле, все дела, но за доказательством не ко мне.
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
12.08.2020, 10:58
Поиск по дереву состояний.
0
3 / 3 / 0
Регистрация: 15.05.2015
Сообщений: 72
24.05.2024, 11:11
Приветствую вас, коллеги.
Тоже столкнулся с этой задачкой...
Давеча решил прикрутить на информационный терминал в коридоре ещё одну игру, чтобы дети игрались пока родители в очереди сидят. BUBBLE SORT (не путать с сортировкой массивов), или по-нашему - "Шарики в колбочках", "Шарики в пробирках".
В интернетах поговаривают, что некоторые особо упоротые игроки в эти "пузырьки" дошли уже до 5000+ уровня. Интеиция мне подсказывает, что не существует на планете такого китайца, который сидел бы и вручную создавал пятьтыщщ уровней для этой игры. А значит, они процедурно генерируются.
Создал (в VB6) рабочую модель игры, где шарики рандомно получают цвета. Вот только не все комбинации являются решаемыми.
Если в случае начального 2+1 (то есть: 2 пробирки с 8 шарами двух цветов + 1 пустая) всё вроде бы всегда сходится,
то в варианте 3+1 часть комбинаций - неразрешимые. Заметил, что если в средних рядах (втором и третьем) лежат шары одинакового цвета, то паззл не сложится. ...Но иногда блин складывается! Наверняка есть ещё одна зависимость, которую я визуально никак не прослежу.
Кликните здесь для просмотра всего текста
Это как с "Пятнашками" когда я делал, столкнулся с известной проблемой "15-14", где поменять местами последние два числа не представляется возможным. Но там эта зависимость математически уже давно просчитана, где по формуле можно ещё до начала игры узнать успешно сойдётся она или нет. Достаточно рандомайзером переназначить числа на игровое поле. Поскольку шансы 50/50%, как правило не более одного-двух рестартов.

С вариантами 4+1 ещё сложнее.
Хотелось бы узнать по какому алгоритму отбираются непроходимые варианты.
В некоторых вариантах игры видел, что в случае 3+ цветов просто используют две пустые пробирки.
НО ВОТ ЭТА же комбинация успешно разрешима!
Значит есть возможность проходить задачи с одной пустой пробиркой!

...В планах ограничиться только пятью цветами шаров (а то дети с родителями в коридоре ночевать будут))
Миниатюры
Алгоритм для решения задачи с колбочками  
0
 Аватар для andrey_f
883 / 536 / 228
Регистрация: 21.02.2011
Сообщений: 5,706
24.05.2024, 11:43
Уровни генерируются рандомно в зависимости о того, какие требования, сложность и т.п. и потом проверяется их "решаемость". Вас проверка "решаемости" интересует?
0
3 / 3 / 0
Регистрация: 15.05.2015
Сообщений: 72
24.05.2024, 12:42
Да, нужна проверка решаемости.

У меня в программе 4 уровня сложности
1) 2 + 1 пустая
2) 3 + 1 пустая
3) 4 + 1 пустая
4) 5 + 1 пустая
Как показал на картинке выше, 4 цвета возможно решить с одной пустой пробиркой.
Возможно, и для 5 цветов это тоже возможно, главное знать по какому алгоритму отсеять нерабочие варианты.

...Если эта затея не выйдет, придётся не мучать голову и делать с двумя пустыми склянками...((
0
698 / 572 / 75
Регистрация: 20.09.2014
Сообщений: 3,700
24.05.2024, 19:10
Генерировать можно обратным случайным прохождением, а не случайной генерацией. В этом может быть весь секрет существующих игр.

Вопрос, как управлять сложностью генерируемых уровней.

Добавлено через 16 минут
Как примерно генерировать самый сложный уровень обратным прохождением?

Исходное положение: n бутылок содержат упорядоченные шарики n цветов, m бутылок пустые.
Выбираем любой цвет и шарики этого цвета перекладываем на дно пустых бутылок по 1-2 шт. Выбираем следующий цвет и заваливаем полупустые бутылки этими шариками также по 1-2 шт. Можно третий цвет выбрать и также раскидать, но может и не надо усложнять дальше. Далее можно случайно перемешивать шарики. Но нет смысла трогать те шарики, которые уже были перемещены. Остановить генерацию в тот момент, когда уже все верхние шары передвинуты.
0
1967 / 823 / 114
Регистрация: 01.10.2012
Сообщений: 4,814
Записей в блоге: 2
24.05.2024, 19:33
Цитата Сообщение от MrRoxMJ Посмотреть сообщение
главное знать по какому алгоритму отсеять нерабочие варианты.
Ну а тупенько перебирать все ходы до тех пор пока не решится/заклинит? Вариантов здесь немного, нужно лишь предусмотреть зацикливание
0
3 / 3 / 0
Регистрация: 15.05.2015
Сообщений: 72
24.05.2024, 23:15
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Генерировать можно обратным случайным прохождением
Рекурсия, увы не получится. В игре есть правило - переложить шарик можно только на такого же цвета. Тогда как изначально шарик может лежать на любом другом цвете. То есть если игнорировать правило перекладки, мы получим аналогичную тупиковую комбинацию, ничем не отличающуюся от рандомно сгенерированной.
Цитата Сообщение от Mikhaylo Посмотреть сообщение
m бутылок пустые
Если пустых колбочек более 1, то даже обсуждать нечего. С двумя пустыми пробирками паззл успешно складывается всегда. Но по сложности такой паззл примитив. Мне потому и захотелось заморочиться на вариант с одной пустой колбой, в котором игрок на несколько ходов вперёд думать должен.
Если добавлять в код программы на этапе генерации различных проверок типа "не завали проход".... То по сути мы в итоге приходим к коду автосборщика паззла - как предложил Igor3D
Цитата Сообщение от Igor3D Посмотреть сообщение
перебирать все ходы до тех пор пока не решится/заклинит
.

Коллеги, говорят сейчас нейросети такие бошковитые, что за прогеров код пишут)) А что если скормить эту игру нейросети (не VB6 код, а саму игру с одной пустой пробиркой), чтобы она перебрала миллионы рандомно сгенерированных комбинаций и вывела ту самую искомую мной закономерность в расстановке шаров - при которых игра тупиковая, а при которых решаемая? )))
0
698 / 572 / 75
Регистрация: 20.09.2014
Сообщений: 3,700
25.05.2024, 07:18
Цитата Сообщение от MrRoxMJ Посмотреть сообщение
Рекурсия, увы не получится. В игре есть правило - переложить шарик можно только на такого же цвета.
Так правила обратного прохождения другие. Правило-то одно: перекладывать за один ход можно шарики только одного цвета за ход, лежащие сверху в бутылках.

Кликните здесь для просмотра всего текста
Исходное состояние:
*aaaa
*bbbb
*cccc
*dddd
*


1)
*aaa
*bbbb
*cccc
*dddd
*a

2)
*aaa
*bbbb
*cccc
*dddd
*ab


3)
*aaa
*bbb
*cc
*dddd
*abcc

И так далее.


Добавлено через 5 минут
Цитата Сообщение от MrRoxMJ Посмотреть сообщение
Если пустых колбочек более 1, то даже обсуждать нечего. С двумя пустыми пробирками паззл успешно складывается всегда.
Вы, видимо, мало играли в игру. Все зависит от соотношения чисел m, n, k.
n - полных бутылок (=количество цветов),
m - пустых,
k - высота бутылок (=количество шаров одного цвета).

Если n = 10, k = 4, то при m = 2 вполне играбельно.

Добавлено через 3 минуты
И не надо решать задачи нейросетями там, где уже предложено два варианта железобетонно рабочие.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.05.2024, 07:18
Помогаю со студенческими работами здесь

Подскажите, какой алгоритм подходит для решения этой задачи
Вот у нас есть таблица, заполненная определенными ценами (они, конечно, могут быть любыми). Необходимо разработать алгоритм, который на...

Rак составить алгоритм для решения следующей задачи?..
Подскажите, пожалуйста как составить алгоритм для решения следующей задачи: Есть N-ое количество стрел. Нужно выбрать из них все...

Составить алгоритм для решения задачи
Составить алгоритм для решения задачи: подсчитать значение выражения Y=78-24C на промежутке от 10 до 20

Алгоритм для решения задачи по программированию
Доброго времени суток всем. Прошу помощи в составлении алгоритма решении задачи: На ежедневную прогулку выходят 15 детей. Их строят в...

Составить алгоритм и программу для решения задачи
Составить алгоритм и программу для решения задачи


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru