|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
8-puzzle20.01.2017, 16:52. Показов 5055. Ответов 38
Предыстория: проходя, в универе курс "системы искусственного интеллекта", нам задали спроектировать приложение, которое будет решать "проблему" 8-puzzle разными алгоритмами и сравнивать их эффективность.
Почему-то мне захотелось сделать её нормальной: с адекватным UI, где можно будет увидеть каждых шаг решения задачи. Что-то наподобие этого . Решил писать на Qt 5.7 MSVC 64 так как наиболее с ним знаком. Первоначально программа должна решать задачу 8-puzzle при помощи информативного алгоритма A* H1 (количество фишек, которые стоят не на своих местах). Далее будут добавлены и другие. 1. Собственно пока что я не совсем понимаю, с помощью каких виджетов лучше проектировать сами пазлы . То есть, нужно использовать QGraphicsScene и для каждой цифры создавать QGraphicsItem? Или можно цифры сделать в виде QLabel и перемещать их в табличном лойауте? 2. Также, я не совсем понимаю как вообще решается задача. При этом сам алгоритм А*, вроде бы понятен... п.с. заранее спасибо за помощь в поисках истины =)
0
|
|
| 20.01.2017, 16:52 | |
|
Ответы с готовыми решениями:
38
Class QPainter игра Memory Puzzle Puzzle The Spots Puzzle на прологе |
|
|
||
| 26.01.2017, 08:34 | ||
|
1
|
||
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,341
|
||
| 26.01.2017, 09:14 | ||
|
ProcessEvents для визуализации длинных вычислений, чтобы понимать - ещё считает или уже зависла? Ну и для красоты, чтобы на форме какие-нить циферки тикали. Типо анимэ...
1
|
||
|
|
||
| 26.01.2017, 10:02 | ||
|
1
|
||
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|||||
| 26.01.2017, 10:42 [ТС] | |||||
|
Добавлено через 9 минут Суть в том, что во время поиска алгоритмом решения, если попытаться передвинуть окно программы -- оно подвисает (появляется надписать "Не отвечает"). Но как только алгоритм закончил подсчет ответа, все нормально работает. Во время работы алгоритма никаких анимаций происходить НЕ должно! Анимация возможна только после нахождения решения, её обработку я еще не делал.
0
|
|||||
|
693 / 465 / 162
Регистрация: 01.10.2015
Сообщений: 1,274
|
||
| 26.01.2017, 10:57 | ||
|
1
|
||
|
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
|
|
| 26.01.2017, 11:01 | |
|
QProgressBar?
Его можно обновлять в процессе работы алгоритма.
1
|
|
|
|
||
| 26.01.2017, 11:34 | ||
|
При этом интерфейс, как в одним случае, так и в другом, придётся переделывать. К примеру, отключать кнопку, которая вызывает вычисление алгоритма, изменять указатель мышки на Busy и т.д. и т.п. Я бы советовал вам сейчас этим не заниматься и сосредоточиться на реализации алгоритмов и чернового варианта программы. А оптимизациями заниматься потом - если останется время.
1
|
||
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,341
|
||
| 26.01.2017, 15:27 | ||
|
0
|
||
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
| 26.01.2017, 16:28 [ТС] | |
|
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,341
|
|
| 26.01.2017, 20:56 | |
|
Это алгоритм поиска кратчайшего пути из точки А к точке В. Как с его помощью сложить пазл? У меня что-то соображалки не хватает. И мне кажется, это вообще "не о том"...
0
|
|
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
| 26.01.2017, 21:02 [ТС] | |
|
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,341
|
|
| 26.01.2017, 21:10 | |
|
Ну так как задача решается?
0
|
|
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
||||||||||||
| 26.01.2017, 23:39 [ТС] | ||||||||||||
|
Кликните здесь для просмотра всего текста
Astar.cpp Кликните здесь для просмотра всего текста
Составляется дерево состояний среди которых и ищется "правильная" цепочка. При этом если изменить эвристическую функцию на Н2, результат будет находиться гораздо быстрее.
0
|
||||||||||||
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,341
|
|
| 27.01.2017, 09:19 | |
|
Мдя... без пол-литры тут никак... и чего, она реально решает задачу? То есть если ей задать на вход рисунок 1, то она найдёт последовательность ходов, приводящую к рисунку 2?
А у вас есть рабочий проект с этой штукой? Хотелось бы разобраться, как работает.
0
|
|
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|||
| 27.01.2017, 14:38 [ТС] | |||
|
0
|
|||
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
| 27.01.2017, 14:41 [ТС] | |
|
Но я не уверен на 100%, что моя реализация алгоритма абсолютно правильная. Потому что некоторые начальные наборы цифр подозрительно долго решает.
С другой стороны, как я понимаю, А* это самый базовый алгоритм информационного поиска и есть намного лучше.
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,341
|
|
| 28.01.2017, 10:42 | |
|
Ссылки давать нельзя, погугли "Пятнашки « Программы « Сайт Алексея Озерицкого", там решение пятнашек. А раз 4х4 решаются на раз, то и 3х3 тем более.
Я щас пробую эту программу Озерицкого в Qt перетащить, но только начал разбираться пока.
0
|
|
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
||||
| 28.01.2017, 22:12 [ТС] | ||||
С другой стороны я не исключаю, что допустил ошибку=).
0
|
||||
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
| 30.01.2017, 01:31 [ТС] | |
|
К алгоритму А* добавил эвристическую функцию "манхетенская дистанция". При использовании её, решаемые задачи выполняются мгновенно. Сравнивал на онлайн ресурсах, у них в несколько раз медленнее (наверное из-за того, что я использую С++).
Кому интересно можете скачать (ссылка). Добавлено через 4 минуты Не по теме: Всем спасибо за помощь =)
0
|
|
| 30.01.2017, 01:31 | |
|
C# игра puzzle bubble
Jigsaw Puzzle а именно наложение картинки на пазл Puzzle Wars - он-лайн игра для тех, кому за тридцать Groovy Игрушка "puzzle" - логика работает, а изображение не меняется Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|