Посоветуйте, пожалуйста, ресурсы, содержащие обучающие задания по С++. Хочется, чтоб в задания была какая-то система, нацеленная на всестороннее освоение, чтоб было постепенное возрастание сложности, ну и чтоб задания были более-менее интересными.
--
Не можешь достичь желаемого — пожелай достигнутого.
Здравствуйте, rg45, Вы писали:
R>Посоветуйте, пожалуйста, ресурсы, содержащие обучающие задания по С++. Хочется, чтоб в задания была какая-то система, нацеленная на всестороннее освоение, чтоб было постепенное возрастание сложности, ну и чтоб задания были более-менее интересными.
Здравствуйте, rg45, Вы писали:
R>Посоветуйте, пожалуйста, ресурсы, содержащие обучающие задания по С++. Хочется, чтоб в задания была какая-то система, нацеленная на всестороннее освоение, чтоб было постепенное возрастание сложности, ну и чтоб задания были более-менее интересными.
Немного не то, что вы спрашивали, но всё же. Как-то спросили, что делать, чтобы минимально обучиться и в то же время было интересно. Я советую делать простейшие игры. Скопипасчу:
Можно сделать с базовыми знаниями программирования, гуглом и трудолюбием (и с которым вас наверняка возьмут, например, на Junior C#/С++ позицию):
Написать сетевой морской бой (или крестики-нолики), в котором история матчей сохраняется в базу данных. Причём делать по пунктам:
1) Сначала научиться отображать доску с кораблями. Хотя-бы 10х10 кнопок, где корабли/выстрелы отображаются символами 'O' 'X' '.'. В качестве исходных данных — обычный двумерный массив.
2) Научиться обрабатывать клики по доске — при нажатии на кнопку менять значение ячейки в массиве.
3) Написать примитивную игровую логику: 2 поля, 2 окна, 2 игрока, ходят по очереди, при выстреле по ячейке выполнять п.2.
4) Доработать логику в соответствии с правилами "морского боя" — после попадания по врагу повторить ход. Научиться проверять, закончилась ли игра. Научиться валидировать расстановку кораблей.
5) Сделать несколько стадий игры: 1 — расстановка кораблей, 2 — игра, 3 — объявление победителя
6) Отделить логику игрового поля от логики рисования игральной доски.
7) Вынести логику в отдельный процесс и сделать сетевое взаимодействие. Тупо на сокетах, без каких-либо проверок корректности и т.п. Уже получится клиент-серверное приложение
8) Научить сервер записывать в базу последовательность ходов. Любая реляционная СУБД на одну таблицу.
9) Научиться восстанавливать игру из базы
10) Научиться писать в базу несколько игр. Т.е. табличка с названием игры + двумя именами игроков.
Задача потянет на средний курсач для 1-2 курса БГУИР. И на фоне любого джуна с профильной специальностью, у которого в резюме будут только лабораторные работы, возьмут того, кто сам сделал минимальный проект. Который, кстати, отлично зайдёт и вместо тестового задания.
Здравствуйте, SaZ, Вы писали:
SaZ>Я советую делать простейшие игры.
Выше я приводил ссылку на CodinGame — ресурс, который как раз и позволяет на разных языках (приветствуются незнакомые языки) реализовывать предлагаемые игры. Как синглплеерные (надо решить задачу, типа пройти «квест» против игры), так и мультиплеерные (нужно написать бота с заданным интерфейсом, который будет соревноваться с ботами других участников). Для каждой игры есть веб-визуализатор. Например, тут надо гонять повозками с несложной 2D-физикой: https://www.codingame.com/multiplayer/bot-programming/coders-strike-back
Я попробовал, дальше бронзовой лиги пока не прошёл на наивном рассчёте steering'а.
Здравствуйте, rg45, Вы писали:
R>...и чтоб задания были более-менее интересными.
Ещё популярен https://www.hackerrank.com
Можно, например, выбрать тему (графы, динамическое программирование, etc.) и решать по ней задачи, прогонять тест-кейсы, etc. Можно зарубаться в разных контестах, если нужен соревновательный элемент.
Советую.
Здравствуйте, rg45, Вы писали:
R>Посоветуйте, пожалуйста, ресурсы, содержащие обучающие задания по С++. Хочется, чтоб в задания была какая-то система, нацеленная на всестороннее освоение, чтоб было постепенное возрастание сложности, ну и чтоб задания были более-менее интересными.
на certifications.ru есть тест по c++ простенький, но в общемто достойный.
SaZ>Задача потянет на средний курсач для 1-2 курса БГУИР. И на фоне любого джуна с профильной специальностью, у которого в резюме будут только лабораторные работы, возьмут того, кто сам сделал минимальный проект. Который, кстати, отлично зайдёт и вместо тестового задания.
План хорош.
Если начать в 1 семестре, то завершить можно в 4 семестре на 2 курсе. Или даже в 5 семестре на 3 курсе.
Ибо начинаем с консоли и процедур.
А заканчиваем оконным и ООП.
Да еще БД — у нас это как раз в 4 семестре или даже в 5-м.
В этом году стали PostgreSQL изучать.
Да еще и сеть.
В общем по опыту реально на 3 курсе можно получить реальную сетевую игру.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!