Как мне решить это скользящее задание головоломки в C++
Мне было поручено выполнить это скользящее задание головоломки, но я не уверен, с чего действительно начать. Правила присвоения следующие:
Каждая 8-головоломка имеет плитки с надписью 1-8 и одно пустое пространство, обозначенное 0.
Приведенные команды указывают, где вы должны попытаться переместить пустое пространство относительно его текущего положения.
Единственные ходы, которые вам разрешено делать, - это замена пустого пространства соседней плиткой.
Если вас попросят сделать невозможную замену (т. е. переместить пустую плитку за пределы сетки), не завершайте программу, просто проигнорируйте эту команду.
назначение
Для этого задания мы просим вас взять 8-ю головоломку и следовать последовательности команд движения вверх, вниз, влево и вправо. В конце последовательности вы должны проверить, была ли головоломка решена.
Ввод
В качестве входных данных вам будет дано некоторое начальное состояние доски в виде последовательности чисел, где 0 соответствует "пустой" плитке. Приведенный ниже пример будет представлять собой форму приведенного выше примера "начального состояния". После этого будет последовательность команд "вверх", "вниз", "влево" и "вправо", представленных символами на одной строке, разделенной пробелами. (Приведенная ниже последовательность команд не имеет никакого отношения к графическому изображению примера)
Пример ввода:
1 8 2 0 4 3 7 6 5
Д Р Р Р У Л
ваша задача
После сохранения начального состояния платы вы будете выполнять данные команды (до тех пор, пока они разрешены, как указано в разделе правил). Выполните все команды, а затем проверьте, правильно ли решена головоломка.
Выход
Ваш выход должен быть решением хорош! если головоломка находится в решенном порядке, как указано выше, и неправильное решение! если головоломка не находится в "целевом состоянии", указанном выше.
Что я уже пробовал:
Я не очень старался с этой программой, так как был озадачен тем, с чего именно начать. Если кто-то может предложить и посоветовать мне, с чего начать или как решить эту программу, дайте мне знать.
Richard MacCutchan
Начните с исследований, планирования и дизайна. Нарисуйте свою головоломку на листе бумаги и подумайте, что вам нужно сделать, чтобы переместить плитки из одного места в другое.