Реши интересную задачу на С++ и получи планшет!

Объявляем конкурс по программированию на С++ среди студентов харьковских вузов!

Каждый, кто предоставит нам решение конкурсной задачи, гарантированно получит в подарок от компании FulcrumWeb флешку, а также квалифицированную обратную связь по предоставленному исходному коду. Автору лучшего решения мы подарим планшет!

 Для конкурса мы выбрали интересную задачу, которая позволит каждому участнику:

  • прокачать навыки программирования на С++;
  • углубить свои знания;
  • насладиться процессом работы над хорошей задачей;
  • получить ценный подарок и полезные советы от компании FulcrumWeb!

Написанный исходный код полностью принадлежит автору и может быть использован в качестве убедительного аргумента при поиске работы в будущем ;-)

 Условия участия в конкурсе:

  • быть студентом харьковского вуза;
  • не являться сотрудником ИТ-компании (не работать программистом);
  • самостоятельно работать над конкурсным заданием и быть готовым ответить на наши вопросы по предоставленному коду (при необходимости подтверждения авторства);
  • исходный код (на C++ с применением Win32/64 API) нужно прислать на team@fulcrumweb.com

Каждый участник, приславший нам работающее решение, получит в подарок флешку и полезные комментарии по своему коду от опытных разработчиков.

По итогам конкурса наши эксперты назовут лучшее решение, и его автор станет обладателем планшета!

Если, кроме победителя, нам захочется отметить ещё 1-2 участников – мы также подарим им ценные подарки.

Постановка задачи:

Необходимо реализовать компьютерную игру “Пятнашки”, имеющую 2 режима отображения игрового поля.

Первый режим – стандартный. В этом режиме игровое поле должно быть заполнено пронумерованными  блоками аналогично приведенному ниже рисунку:

Второй – режим фотографии. В этом режиме, вместо пронумерованных блоков, должна использоваться произвольно выбранная фотография. Размер фотографии может отличаться от размеров игрового поля.  Загрузка фотографии не должна менять размер игрового поля. Пользователю должна предоставляться возможность выбора графического файла (JPG, PNG, BMP) с локального диска, далее, если фотография не квадратная, – возможность выбора квадратной области на исходной фотографии либо опция  изменения пропорции фотографии до квадрата.

Общий размер игрового поля может меняться путем изменения размера окна, но при этом всегда оставаться квадратным.

В ходе игры должен вестись учет времени и количества сделанных шагов.

Желательно реализовать плавное перемещение блоков (путем анимации). Блок должен перемещаться за время, не превышающее одну секунду.  Во время анимации не должно быть возможности проведения следующих шагов.

Технологии:

Игра должна быть реализована на языке С++ с применением Win32/64 API; возможно использование MFC.

 

Желаем успехов и с нетерпением ждём ваших решений!

Все вопросы можно смело задавать в комментариях ниже.

25 Коммент. : “Реши интересную задачу на С++ и получи планшет!”

  1. Евгений says:

    Использование Qt возможно?

    • Нет, для решения этой конкретной конкурсной задачи мы не предлагаем использовать Qt.
      Возможно, следующую конкурсную задачу придумаем специально под Qt :) , а в этот раз просьба использовать предложенные технологии.

    • В нашей компании приветствуются знания C++ в связке с WinAPI/MFC так и с QT. Самый большой проект компании как раз разрабатывается на QT.

      Реализация данной конкурсной задачи на WinAPI/MFC является достаточно сложной и нетривиальной. Используя QT можно реализовать требуемую функциональность за считанные часы. Было бы нечестно сравнивать реализации на QT и на API/MFC. По этой причине в данной конкурсной задаче мы исключаем вариант реализации на QT.

      В следующей конкурсной задаче обещаем расширить список библиотек и разрешить QT.

  2. Вячеслав says:

    А как на счет GDI+?

  3. Ринат says:

    То есть вся сложность задачи заключается исключительно в том, чтобы реализовать её только с WinAPI? Потому что написать пятнашки и разбить картинку на n квадратов — как-то ну слишком просто для конкурса.

    • Все верно.

      С WinAPI задача значительно сложнее нежели с другими библиотеками. достаточно забыть освободить контекст устройства или не вернуть графический объект – и все перестанет работать.

      Следующие конкурсные задачи будут сфокусированы больше на логику/алгоритмы, чем на API.

  4. Богдан says:

    Вопросы об оценивании решений:
    - какие будут основные критерии? (чистота кода, продуманность классов,прочее)
    - будет ли учитываться дополнительный функционал? (возможность выбирать размер поля, прочее)

    • К сожалению невозможно сформулировать абсолютно точный формальный критерий оценки.

      Понятие “чистота” кода весьма относительное. Но мы постараемся все объективно оценить. Все работы будут опубликованы на нашем сайте (с согласия автора). Работа победителя обязательно будет опубликована.

      Дополнительный функционал будет воспринят положительно. При прочих равных будет приниматься во внимание наличие дополнительного функционала.

  5. Можно ли использовать OpenGL (скорей всего 3.2 версии) в связке с WinAPI?

  6. Роман says:

    Внешний вид стандартного варианта игры должен быть в точности таким как на рисунке, или произвольным?

  7. Валерий says:

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

    • Валерий, формат конкурса подразумевает, что каждый участник может представить только одно решение.
      Если у Вас возникнут какие-то новые идеи по реализации – мы будем рады их обсудить индивидуально. Например, в ходе технического собеседования на одну из наших открытых вакансий :) Если, захотите, конечно. Кстати, авторы хороших решений вполне могут быть рассмотрены нами для прохождения стажировки и последующего трудоустройства. Так что, кроме планшета, можно по итогам конкурса рассчитывать ещё и на работу в нашей компании.

  8. Александр says:

    Режим отображения должен быть выбран до начала игры, или в ходе игры должна быть возможность его менять, со стандартного на фотграфию?

    • Александр, режим отображения должен быть выбран до начала игры. В таком варианте задача немного упрощается.

    • Anonymous says:

      возможность выбора квадратной области на исходной фотографии либо опция изменения пропорции фотографии до квадрата – это как ???? P.S проект выполнен на 95% осталось только красиво сделать этот пункт.

  9. По поводу области выделения на изображении – очень туго идет, 4 дня мучаюсь, багнутая винда не поддается, очень много багов. Поэтому нуждаюсь в вашем совете : Как бы мне найти уже готовую область выделения, как в MS Paint, возможно ли загрузить ее через Com интерфейсы ??

  10. Конечно первым делом я попробовал рисовать обычный квадрат и тянуть его за мышкой, но тогда нужно перерисовывать все окно, иначе этот квадрат его портит – результат жестокое мерцание экрана.

    • К сожалению, помогать советами в решении конкурсной задачи мы не можем. Все участники конкурса должны находиться в равных условиях, иначе это было бы не честно.
      После завершения конкурса мы обязательно опубликуем лучшие решения на сайте и Вы сможете посмотреть, как эту проблему решили другие разработчики.

  11. Конкурс завершился. Огромное спасибо всем, кто прислал свои варианты решения конкурсной задачи!
    Как настоящие студенты, многие прислали свой исходный код буквально в последнюю ночь :)
    Теперь нам понадобится несколько дней для анализа всех поступивших решений и выбора победителя.
    И, конечно же, все, кто прислал работающее решение с соблюдением условий участия в конкурсе, получат от нас по флешке. А также комментарии по своему коду от опытных программистов.
    Просьба набраться терпения и подождать ещё совсем чуть-чуть! :)

  12. Проверка конкурсных работ уже близится к завершению. Из-за высокой занятости наших сотрудников процесс выбора лучшего решения затянулся. Но мы надеемся, что уже в течение нескольких дней сможем опубликовать результаты и наградить победителя.
    Огромное спасибо всем за терпение! Осталось уже совсем немного :)

  13. Поздравляем Андрея с победой в конкурсе! http://www.fulcrumweb.com.ua/?p=7081&preview=true

  14. Пример реализации конкурсной задачи можно посмотреть здесь: http://www.fulcrumweb.com.ua/archives/7101

Оставить комментарий

Ваш адрес email не будет опубликован.


*