|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.05.2018, 11:24 | #1 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
Головоломка Птички. Не могу придумать авторешение
Всем доброго времени суток, уважаемые эксперты. По заданию нужно сделать головоломку, соответствующую следующим правилам (на картинке). Головоломку я сделал.
А вот в авто решении нельзя просто подставить загаданный пример программой, потому что нужно, чтобы программа могла загрузить поле из файла и не зная правильного решения - автоматически его решить. Пробовал разные варианты - пока ничего не получается толкового. Подскажите как это реализовать хотя бы примерно (можно на словах даже) или в какую сторону копать в создании алгоритма. Заранее спасибо за советы всем! Если нужно - я прикреплю весь проект. |
11.05.2018, 12:30 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Засунь в двумерный массив сначала. Поскольку шестиугольная мозаика, то массив не совсем простой. И перебор вариантов c отбраковкой тупиковых пока все не заполнишь ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
11.05.2018, 13:24 | #3 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
Я через трехмерный массив делал. Третье число отвечало за уровень - верхний уровень - это номера фигуры в той клетке куда поставили ее ( в зависимости от координат и поворота), а на нижнем уровне отмечаю уже занятые клетки (по 3 клетки на каждую фигуру). Там еще буду доделывать повороты фигур - сейчас повор происходит только если кликаешь по клетке, в которой поставил фигуру (я только ее отмечаю в массиве на верхнем уровне), анужно будет чтобы по любой клетке можно было поворачивать. Но с этим я, думаю, разберусь - там не так сложно.
При прорисовке я просто для клеток сдвиги вправо прописал и вверх. И проблема была решена. Реализация шестиугольных клеток и их отображение не очень большая проблема. Проблема именно в алгоритме. То виснет все, то решения не находит и решает не до конца. Я так понимаю нужно через бек трекинг делать реализацию и под него делать новый массив, в котором отмечать каждую поставленную фигуру. А когда ставится фигура - надо в радиусе 1 клетки вокруг прорять кратность трем клеток. И как-то (возможно через волновой алгоритм поиска) проверять замкнутные области. Вот пока и не получается этот алгоритм придумать должным образом. Сам проект: http://dropmefiles.com/u2QXo Последний раз редактировалось Armageddets; 11.05.2018 в 13:28. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не могу придумать условие запроса | Dvoishnik | SQL, базы данных | 3 | 22.04.2016 15:31 |
Матрицы в Builder.Не могу ничего придумать. | spectrum988 | Помощь студентам | 21 | 25.11.2013 15:27 |
Не могу придумать доработку. | Rik55rus | Помощь студентам | 1 | 06.10.2012 21:13 |
не могу придумать форрмулу!!! | ta4ilka | Microsoft Office Excel | 3 | 11.04.2010 18:02 |