A Mastermind board game:
We played a lot of board games growing up and one I really enjoyed was called 'Mastermind', which involved one player making up a code with 4 pegs of different colors in a specific order and the other player making guesses about the code and getting feedback until they correctly guessed the code in as few guesses as possible.
I thought programming this game would be a good challenge because it meant I had to learn how to make the computer display color graphical information, how to move and collect data from the mouse and also do game logic. Initially, I programmed this using the DOS operating system (not Windows) which also meant having to write assembly-language routines in 386-assembly code to directly access the video card (because you had to switch it into 'graphics mode' and then directly access memory in a specific way to draw things on the screen. I also had to learn how to hook into the computer's interrupt system in order to intercept the actions of the mouse for processing.
The game worked well - you as the human were the guesser - the software handled creating the random coded pattern and the scoring. As a further challenge, I bought another book about Windows programming and did the project over again to run on Windows (which is completely different - it has its own internal graphics display engine, and is an event-driven operating system). This version of the game actually can still run on computers today running Windows.
I named my version of the game 'Decipher', and below is a screenshot:
