powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите реализовать такую пуззле
2 сообщений из 2, страница 1 из 1
Помогите реализовать такую пуззле
    #39686366
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот перевод постановки, но может кто в курсе, может в интернете есть что-то на шарпе, без юзер интерфейса?
Такие игрушки есть на смартфонах под Андроидом.

-----------
Сегодня мы собираемся реализовать популярную однопользовательскую игру, которая доступна на многих
смартфонов. Игроку дается n x n доска плиток, где каждому плитку дают один
цветов. Каждая плитка соединена с четырьмя соседними плитами в северном, южном, восточном и западном направлениях. Плитка связана с началом (плитка в верхнем левом углу), если она имеет тот же цвет, что и источник, и есть путь к началу координат, состоящий только из плиток этого цвета. Игрок делает ход, выбирая один из цветов. После того, как выбор сделан, все плитки, которые связаны с источником, меняются на выбранный цвет. Игра продолжается до тех пор, пока все плитки платы не будут иметь тот же цвет. Цель игры - изменить все плитки на один и тот же цвет, желательно с наименьшим количеством возможных движений.
Было доказано, что поиск оптимальных ходов - очень сложная вычислительная проблема. Было также показано, что поиск минимального количества операций наводнения NP-hard при m> 3. Это даже верно, когда игрок может выполнять операции затопления из любой позиции на доске. Однако этот вариант можно решить в полиномиальное время для частного случая m = 2. Для неограниченного количества цветов даже этот вариант остается NP-твердым для досок размером не менее n = 3 и разрешимо в полиномиальное время для плат размером n = 2.
Для вашего решения вы реализуете очень простую жадную стратегию для ее решения:
 для каждого хода выберите цвет, который приведет к наибольшему количеству плиток
 подключен к источнику;
 если есть галстук, сломайте связи, выбрав цвет, который имеет самый низкий ранг среди цветов.
На следующем рисунке показана возможная последовательность движений вместе с выбранным цветом на панели 6 x 6, первоначально заполненной тремя различными цветами.
Внесите в игру и автоматизированного игрока, который определяет выбор цвета для каждого хода. Мы хотим определить количество ходов и последовательность цветов, выбранных игроком в течение игры. Пожалуйста, используйте модульные тесты, чтобы убедиться, что ваш код работает правильно! Нет необходимости внедрять какой-либо пользовательский интерфейс, просто используйте свой модульный тест в качестве драйвера вашего программного обеспечения.
Если вы можете быстро реализовать простой жадный алгоритм, вы можете предложить улучшенное решение с использованием модифицированного алгоритма A *.
---------
...
Рейтинг: 0 / 0
Помогите реализовать такую пуззле
    #39686412
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё, вопрос снят :-)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите реализовать такую пуззле
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]