Форум программистов, компьютерный форум CyberForum.ru

Задача "Сокобан" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа из книги, в которой осуществляется вызов двух функций не работает http://www.cyberforum.ru/cpp-beginners/thread929095.html
Может кто поможет, не работает программа с книги "Моя первая программа на С/С++" А.Нейбауэр (Листинг 7.1. Программа, в которой осуществляется вызов двух функций.) Я уже понял что книжку для начала я выбрал слишком древнюю, ошибок в ней тоже не мало, но распечатал, дочитать надо, та и с нуля в ней не плохо все разжёвано, даже местами слишком. Программа ругается на функцию question() если добавлять...
C++ Запись/чтение структур (файлы) + разница между FILE * и <fstream> Всем привет. Порыскал по форуму, погуглил... Решения есть, но они не ясны (что, почему да как) и не все работают. Однако, я так и не нашёл конкретных и ясных объяснений по-этому поводу. И т.к. в С++ я пока конкретный чайник (и видать ещё надолго), буду очень признателен если кто-либо сможет объяснить Коболисту всю эту канитель на пальцах... И так, к делу! Первое, что я так и не понял: возможно... http://www.cyberforum.ru/cpp-beginners/thread929077.html
C++ Список С++
Доброго времени суток всем. Возник вопрос, как его решить не знаю. Те кто знаком c python знают, что там есть такая штука как "list". В нем можно хранить объекты любых типов. Вставл вопрос, а как такое на С++ реализуется а еще лучше, возможно ли? template<typename T> class List { private: T data; List<T>* next; public: //и дальше по тексту }
невозможно преобразовать параметр 1 из "int" в "int *&" C++
#include <iostream> using namespace std; void Func1(int *n) { cout << *n << " = " << *n << endl; } void Func2(int &n) {
C++ DLL ошибка LNK2019 http://www.cyberforum.ru/cpp-beginners/thread929022.html
Добрый день! Рассматриваю пример, Создание и использование Dll, на MSDN. Делаю все, что требуется, создал dll, создал проект, указал нужные доп. пути к файлам, но приложение выдает ошибку: 1>MyExecRefcDll.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: static double __cdecl MathFuncs::MyMathFuncs::Divide(double,double)" (?Divide@MyMathFuncs@MathFuncs@@SANNN@Z) в...
C++ Экспорт из 3d max, наложение текстуры Здравствуйте. Проблема с наложением текстуры. С помощью библиотеки lib3ds.lib импортирую 3ds файл в программу (простой куб), накладываю текстуру. Текстура независимо от размера (64х64 или 512х512) накладывается маленькими повторяющимися квадратами. Когда беру 3ds файл из примера (был вместе с библиотекой) текстура накладывается нормально. Когда делаю в 3d max сцену из двух объектов, один мой,... подробнее

Показать сообщение отдельно
name?
 Аватар для name?
198 / 169 / 18
Регистрация: 01.06.2010
Сообщений: 371
Завершенные тесты: 1
26.07.2013, 15:59     Задача "Сокобан"
Ограничение времени: 5.0 секунды
Ограничение памяти: 64 МБ
Программист Стас на время отпуска устроился поработать в японскую компьютерную фирму Thinking Rabbit. Сначала идея казалась замечательной — и на халяву съездить за границу, и заработать, и набраться опыта у японских коллег. Но оказалось, что программисты без знания японского фирме не нужны, и Стаса отправили работать кем-то вроде кладовщика (по-японски его профессию называли Soko-ban).
Стас должен наводить порядок на складе, точнее, расставлять контейнеры с грузом по местам. Каждое утро Стасу дают бумажку со схемой очередного помещения и указанием, куда надо поставить контейнеры (почему-то начальству фирмы Thinking Rabbit не важно, какой именно контейнер куда поставить, главное, чтобы все контейнеры стояли только на отмеченных местах).
Однако, расставить их не так просто. Контейнеры большие и тяжелые, так что передвигать их можно, только толкая по полу, причем сил хватает лишь на один контейнер за раз. Кстати, контейнеры еще и гладкие, поэтому их можно толкать перед собой, но невозможно, например, тянуть за собой или поворачивать. Габариты помещения точно подогнаны под размеры контейнеров, поэтому Стас не может перебраться через контейнер, протиснуться между стоящими рядом контейнерами или пролезть между контейнером и стеной — он может ходить только по свободному пространству. Поэтому наведение порядка превращается в жуткую головоломку. А если решить её не удается или контейнер случайно попадает в какой-нибудь угол, из которого его не вытащить, то Стасу не позавидуешь. Дело в том, что стены склада сплошные, без выходов. Утром Стас попадает на склад через один из люков в потолке, а выйти из помещения он может только тогда, когда выполнит свою задачу. Умная система управления откроет люк для Стаса в нужном месте.
Помогите Стасу составить план перемещения контейнеров.
Исходные данные
На входе задана схема склада — прямоугольная сетка размером n × m (3 ≤ n, m ≤ 8). Пустое место обозначется пробелом, а объекты обозначаются следующими символами:
# — стены
. — пустое место, куда нужно поставить контейнер (цель)
@ — место, откуда начинает работу Стас
+ — место, откуда начинает работу Стас, если там находится одна из целей
$ — контейнер на пустом месте
* — контейнер на одной из целей
Гарантируется, что схема склада задана корректно, т.е. Стас не может выйти за его пределы. Количество контейнеров совпадает с количеством целей.
Результат
Выведите строку, описывающую план перемещений Стаса, при котором он расставляет контейнеры по конечным позициям. Все перемещения записываются буквами r, l, u и d (соответствующие четырем направлениям перемещений). Если при перемещении двигается контейнер, то буквы записываются в верхнем регистре (R, L, U и D соответственно). Длина строки не должна превышать 10000 символов. Можете считать, что решение всегда существует.
Примеры
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
исходные данные результат
########
#@  $ .#                rrRR
########
 
 ######
##   .#
#@  ###              dddrrrruLdlUUUluRR
#   * #
#   $ #
#     #
#######
по идее чтоб решить эту задачу нужно знать волновой алгоритм(хотя думаю с ним просто по времени не впищемся) и все делать пошагово. У кого-то есть еще какие-то идеи как ее решать?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru