ASCII Tetris

I created an ASCII Tetris with Python using Pygame! Tetris has always been one of my favorite classic video games. I remember playing it on Facebook and competing with my friends in the multiplayer game mode. However, the game was taken down a few years ago. That’s why I want to recreate the game on my own. I also made the game in ASCII art style to pay tribute to the original version of Tetris created by Alexey Pajitnov in 1985.

I am really happy with how the game turned out. I learned a lot more about how Python and Pygame work, and also the difficulty of creating a game. I was expecting that I am able to complete the game very quickly and able to add a lot more features since there are a lot of tutorials on YouTube about how to create Tetris, but it took me a lot a lot longer. I hope I will have more time in the future to add other features and make it into an executable.

Installation Steps

  1. Install Python 3
  2. Install PyGame (use terminal and enter pip3 install Pygame)
  3. Download and unzip the game file
  4. Done!

Running Instruction

  1. Use desired IDE or terminal to run the file
  2. Press 1 to play with the default settings
  3. Press 2 to change different blocks or color themes
  4. After finishing adjusting the settings press 6 to go back to the main menu and press 1 to start the game
  5. Press ESC to exit to the main menu while playing

Game Play

  1. ↑ to rotate, ↓ to move down, → to move right, ← to move left
  2. Space to drop, shift to hold the block
  3. Gain 1 point when moving down, 10 points when dropping
  4. Gain 100 for clearing 1 row, 300 for 2 rows, 500 for 3 rows, 800 for 4 rows
  5. 300 points per level, and 50 levels in total

( Instructions are also displayed in HELP section while playing )


There are currently 9 different blocks and 5 different color themes to choose from. Users can press the according key shown to select the desired setting.

Possible Future Features

If I have more time to update the game in the future, here are some of the features that I would like to add.

  1. Game History Leader Board
  2. Pausing the Game
  3. User Block Input
  4. User Color Input
  5. 2 Player Mode