And make it as full-featured as possible. It will take you through quite a few basic concepts that are important in game development, but most importantly, it is based on a recipe that can be summarized as:
- Give the player a single, easy to grasp, yet challenging to achieve goal (reaching a given score);
- Let the player know what he must do in order to achieve it, and make sure it's not an overwhelming task (make straight lines of blocks);
- Try to make the task require bits of judgment and thinking from the player (the player needs to be careful where those blocks go!). This will also increase the player's satisfaction with the game, as it will make him or her feel clever;
- Let the player know that he's doing the right thing whenever he performs the task successfully (score++!);
- Show the player a congrats screen on a successful playthrough (always a nice thing to do!).
It will require you to:
- keep track of the whole state of the game (Running/Paused for two basic states) and game grid;
- continuously check for user input; any kind of input from the user will change either the game state, or the grid's state;
- keep a close focus on victory conditions and whether they've been achieved yet;
- implement a scoring system for the player to feel the progression;
- make the game harder as the player progresses, by increasing the speed at which blocks fall down;
In short, search for game concepts that allow the player to reach a well defined goal by performing some simple tasks (preferably just a single task) that also progressively increase in difficulty.
Leaving Tetris aside, Pac-Man is also a great source of inspiration for a beginner's project. It also requires some very basic pathfinding, which Tetris does not. But the essence is still there: a simple goal (eat those ghosts), with increasing difficulty (ghosts get faster).