Tutorial 1.1 - Tetris

Learn to code with step-by-step lessons. A place for students to work through programming fundamentals and build skills.

Tutorial 1.1 - Build Tetris with Pygame

In this tutorial you’ll build a playable Tetris game step by step. You’ll see why classes are useful for organizing the game, and you’ll practice problem-solving for:

Complete the lessons first if you haven’t already (variables, conditionals, loops, lists, functions). You’ll need Pygame installed and basic knowledge of classes, lists, dictionaries, and loops.


Steps

Work through each step in order. On each step page you’ll find a goal, click-to-reveal hints, and a link to a solution page. Try the step yourself, then compare with the solution before moving on.

Step Topic
Step 1 Why classes? Game and Piece
Step 2 Storing the board and the current piece
Step 3 Moving pieces and collision (lock & new piece)
Step 4 Rotating pieces with offset lists
Step 5 Preventing rotation into walls and other pieces
Step 6 Clearing full rows (see the bug, then implement)

Start with Step 1 - Why classes?.


When you’re done

You’ll have a game you can run from your own script. Play it, show it to a friend, and try the ideas below to make it feel more like yours.

Make it yours (optional):

The reward is running something you built. Every time you move a piece or clear a row, that’s your code doing it.