Сделайте какую-нибудь простую игру, с минимумом действий, но с задействованием всего вашего арсенала с c++, особенно ООП.
Например, напишите rogue-like игру, типа того, что описана в
этом топике.
Тут у вас будет и работа с графикой, и хранение данных в файлах с конфигами (предметы, монстры, уровни), и игровая механика (перемещение, удары), и искусственный интеллект (поиск пути).
Графику можно сделать как консольной (в текстовом режиме), так и освоить какую-нибудь графическую библиотеку (Qt, например). А можно написать два разных интерфейса и выбирать - запустить в консоли или в окне.
Позже можно будет добавить работу с сетью и режим игры вдвоём.
Этот проект (относительно) не сложный, но даст вам очень много практического опыта. Ведь одно дело писать классы в учебных целях, когда заранее известна конечная иерархия, а другое дело - полностью разработать иерархию, реализовать её, увидеть, что вышло не очень (так часто бывает, нужен опыт), найти способ как провести рефакторинг, обнаружить ценность интерфейсов, переписать классы на использование интерфейсов (или общие абстрактные предки), увидеть, что это гораздо лучше, порадоваться за себя, дать поиграть друзьям, получить багрепорты, исправить все баги, и так далее.