не знаю, если это "отвечает" на вопрос либо
анализ "головоломки"
9 плиток
у каждой есть 4 стороны
каждая плитка имеет половину рисунка / рисунка
Подход BRUTE FORCE
чтобы решить эту проблему
вам нужно сгенерировать 9! комбинации (9 плиток X 8 плиток X 7 плиток ...)
ограничено числом совпадающих сторон с текущими плитками, которые уже установлены
РАССМОТРЕЛ ПОДХОД
Q Сколько сторон разные?
IE сколько совпадений?
, следовательно, 9 X 4 = 36 сторон / 2 (поскольку каждая сторона "должна" соответствовать как минимум 1 другой стороне)
в противном случае это нерешаемая головоломка
ПРИМЕЧАНИЕ: по крайней мере 12 должно соответствовать «правильно» для головоломки 3 X 3
маркируйте каждую подходящую сторону плитки, используя уникальную букву
затем создайте стол, содержащий каждую плитку
вам понадобится 4 записи в таблицу для каждой плитки
4 стороны (углы), следовательно, 4 комбинации
если вы сортируете таблицу рядом и INDEX в таблицу
сторона, tile_number
ABCD плитка_1
BCda tile_1
CDab tile_1
DAbc tile_1
использование таблицы должно ускорить процесс
так как вам нужно совпадать только с 1 или 2 сторонами
это ограничивает количество НЕ ПРОДУКТИВНОГО размещения плитки, которое она должна сделать
в зависимости от дизайна рисунка / рисунка
Есть 3 комбинации (ориентации), так как каждая плитка может быть размещена с использованием 3 ориентаций
- одинаковые (несколько копий одной плитки)
- отражение
- вращение
Боже, помоги нам, если они решат сделать жизнь очень трудной
поместив похожие рисунки / рисунки на другую сторону, которые также должны соответствовать
ИЛИ даже превращая плитки в кубики и сопоставляя 6 сторон !!!
Использование TDD,
вы бы написали тесты, а затем код для решения каждой небольшой части проблемы,
как описано выше, и напишите больше тестов и кода для решения всей проблемы
НЕТ, это не легко, вам нужно сидеть и писать тесты и код для практики
ПРИМЕЧАНИЕ: это вариант проблемы раскраски карты
http://en.wikipedia.org/wiki/Four_color_theorem