Last Updated: July 11, 2025
Tetris is a classic tile-matching puzzle game where players control falling shapes, called tetrominoes, and arrange them on a fixed-size vertical grid. The objective is to form complete horizontal lines without gaps.

Key game mechanics include:
In this chapter, we will explore the low-level design of Tetris game in detail.
Let's start by clarifying the requirements:
Before starting the design, it's important to ask thoughtful questions to uncover hidden assumptions, clarify ambiguities, and define the system's scope more precisely.
Here is an example of how a conversation between the candidate and the interviewer might unfold:
Candidate: Should we stick to the standard 10x20 board size for the Tetris grid?
Interviewer: Yes, for this version, let’s stick to the standard 10 columns and 20 rows.
Candidate: How many types of tetrominoes should the game support? Should we include all 7 standard Tetris shapes?
Interviewer: Yes, the game should support all 7 standard tetrominoes: I, O, T, S, Z, J, and L.
Candidate: Should we support features like piece rotation and soft/hard drop?
Interviewer: Yes, both rotation and movement (left/right/down) should be supported. Hard drop is optional but nice to have.
Candidate: Should the game speed up over time as the player scores more or clears lines?
Interviewer: Yes, the speed should gradually increase after a certain number of lines are cleared or after reaching higher levels.
Candidate: What should happen when a full row is completed? Should it be cleared immediately?
Interviewer: Yes, any fully filled row should be removed immediately, and all rows above it should shift downward.
Candidate: Do we need to track and display the player's score and level progression?
Interviewer: Yes, the game should display the current score and level, and update them as the player progresses.
Candidate: Should we take input from user or predefine a set of moves?
Interviewer: Predefine
After gathering the details, we can summarize the key system requirements.