Re[2]: Прошу критиковать решение.
От: saf_e  
Дата: 07.09.10 12:39
Оценка:
Здравствуйте, inher1tance, Вы писали:

I>Здравствуйте господа. Недавно тоже пришлось решать данную задачку. Решал полностью самостоятельно, сюда не заглядывал. Сказали для меня мест нет, но не сказали в чем моя проблема. Покритикуйте пожалуйста решение и код. Самому трудно увидеть собственные косяки. Старался сделать в ООП стиле, как того требовалось, только распараллелить не успел. Алгоритм тут вроде уже набросали. Перебор с возможностью отката и сохранением хэшов состоянии, чтобы избежать зацикливании.

I>Вот проект для VS2008
I>Прогоняйте для своих входных данных и сообщите о результатах, если не затруднит
I>За последние 2 месяца прошел 5 собеседовании, вроде хорошо ответил на большинство вопросов, но не зовут. Неужели у меня все так плохо? У меня уже комплекс неполноценности начинается

Немного глянул. детальный разбор давать не берусь, много всяких недочетов. Из того что бросилось в глаза за пару минут:

1. Используйте "precompiled headers".
2. Не используйте (НИКОГДА) using namespace в хедерах (а std под страхом смертной казни!) -- потомки проклянут!
3. Активнее используете коллекции

static const int MaxAllowedSteps = 1000;
static char sequence[MaxAllowedSteps];
//array of pointers to cell
Cell** m_ppCells;
//array of pointers to marble
Marble** m_ppMarbles;

все это спокойно меняется на std::vector/string заодно уходит статика.

4. Неоправданно использование макроса #define STEP(d). В данном случае легко заменяется на ф-цию.
5. Достаточно запутанная схема реализации состояний и их сношения с рекурсивной ф-цией.

Возможно что-то упустил. Плюс стиль оформления слабоват -- смелее используйте разделители и комментарии.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.