Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с игрой на прологе 
:(
    Опции темы
lokiki
Дата 31.5.2013, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 31.5.2013

Репутация: нет
Всего: нет



Есть поле размером 4×4. На нём расположены фишки, у которых одна сторона окрашена в белый цвет, а другая — в чёрный. Какие-то из них в данный момент лежат белой стороной вверх, какие-то вниз. За один ход можно перевернуть одну фишку и все соседние по горизонтали или вертикали с ней. Целью игры является позиция, в которой все фишки лежат одной стороной вверх (все чёрные либо все белые).

Естественно, такая игра быстро надоедает, неожиданных и нетипичных позиций становится всё меньше и меньше. Поэтому сейчас в СКБ Контур больше распространён модифицированный вариант игры. В этом варианте ход заключается в перекладывании фиксированной комбинации фишек, попадающей в квадрат 3×3. Например, ход может заключаться в переворачивании всех соседей выбранной фишки по диагонали.

Комбинация выбирается произвольной; её можно задать в виде поля 3×3, где центральная клетка соответствует той, в которую делается ход. Например на рисунке слева вверху показана комбинация для обычной игры, а внизу — для описанной в предыдущем абзаце. Заметим, что комбинация не обязана быть симметричной. Ход делается всегда в одну из клеток игрового поля (то есть центральная клетка квадрата 3×3, определяющего ход, выбирается из клеток поля). Предписания комбинации на переворачивание фишек, попадающих за пределы поля, игнорируются.

Для такой игры бывает неплохо знать, можно ли вообще перевернуть все фишки одной стороной вверх, и если можно, то за какое минимальное число ходов. Вот вам и предстоит сделать программу, которая могла бы дать ответ на эти вопросы.
Исходные данные

В первых четырёх строках описывается начальное расположение фишек. Символ 'W' — обозначает фишку, лежащую вверх белой стороной, символ 'B' — чёрной. В следующих трёх строках описывается ход — комбинация переворачиваемых фишек. '0' — фишку переворачивать не надо, '1' — надо.

Результат

Если добиться нужного расположения фишек невозможно, то выведите надпись «Impossible», иначе выведите минимальное количество ходов, за которое это расположение достигается.

пример здесь
http://acm.timus.ru/problem.aspx?space=1&num=1122

Очень сложная задачка для меня...Помогите кто чем сможет, хотябы натолкните на мысль, в какую сторону думать.

Это сообщение отредактировал(а) lokiki - 31.5.2013, 10:35
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.