In my second year of learning computer science, we managed to rebuild an entire game in 2D, following the documentation provided.
It was kinda cool, and fun with my friends, and a lot frustrating.
Here there is some talks about the project, aspects we have to managed to, and the initial game on the card at the right.
The other project was also a game, but funnier to code. The teacher gave us a peice of code in JAVA, wich is a lot different to C language.
The second game was in 2D too but we have to move a character with the keyboard and generate random world.
The goal of the project was to use all the key concepts of OOP (Object-Oriented Programming), including inheritance, encapsulation, interfaces, abstraction, and static methods. This is exactly what we accomplished.
You can find the project on my GitHub if you'd like to try it out or see the code.