Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



A tetris game in C using NCURSES. It's pretty feature complete, except for stretch goals I may pick up in my free time.


My dependencies are:

  • libsdl and libsdl_mixer 1.2 for sound.
  • ncurses for terminal manipulation.

To install them on Arch Linux:

sudo pacman -S sdl_mixer ncurses

To install them on Ubuntu:

sudo apt-get install libsdl-mixer1.2-dev libncurses5-dev

To compile:


To run:


You will need to provide a file named tetris.mp3 in the same directory that you're running the game from. As I understand it, the official Tetris theme song is legally protected in the use of games like this, so I will not be providing or linking to that. But I'm sure you could find something! (You do not need to provide tetris.mp3 in order to play the game, only if you want sound!).


The controls are typical of Tetris:

  • and : Move the tetromino,
  • : Rotate (clockwise?) the tetromino,
  • : Immediately drop the tetromino (not a fast drop, an immediate drop),
  • Q: Exit the game prematurely,
  • P: Pause the game (any key to resume),
  • B: "Boss mode" - show a mock terminal screen to fool nosy onlookers. Hit F1 to resume the game afterwards.
  • S: Save game and exit (just assumes filename To resume the game, run bin/release/main (or whatever you may have renamed the game save to).

Future/Stretch Goals

  • Sound effects (in addition to the theme music).
  • Networked multiplayer!