“For people who enjoy swearing at their computer, Bastet (short for Bastard Tetris) is an attractive alternative to Microsoft Word.” (From


Have you ever thought that Tetris is evil because it never sends you that straight “I” brick you need to clear four rows? Well, Tetris(R) probably is not so malevolent, but Bastet certainly is. >:->
Bastet stands for “bastard tetris”, and is a simple ncurses-based Tetris(R) clone for Linux. Instead of choosing the next block randomly, this fiendish program uses a special algorithm to give you the worst possible brick. Playing Bastet can be a very frustrating experience! *

( *: bonus points for presenting it to your friends as “just another Tetris clone”)

Further information is in the README file inside the package, so go grab it now.

For information, bugs, feature requests, and highscores you can send me an e-mail. Due to popular request, a short description of how the algorithm works is now on-line.


In 2010, Bastet has been discussed in the xkcd forum in the discussion of a comic with a similar theme. If you do not know xkcd yet, check it out, it’s awesome.

On April 2005, Slashdot has published an article about Bastet (0.41), which makes me very proud of my creature :-)
Go read the comments, as usual they are the best part of Slashdot.


![Screenshot 1](files/bastet043_menu.png) ![Screenshot 2](files/bastet043_play.png)



Bastet is now hosted on github; check that page for the development version. Releases:

  • 2014,version 0.43.1: some updates due to upcoming standards: position of the unordered_set header, bastet.desktop and bastet.appdata for the convenience of package managers.
  • 2009, version 0.43: complete code rewrite. As I go on trying to grok C++, algorithms and data structures, and as I started to understand more of Peter’s code, I found it useful to rewrite all this stuff from scratch. So this new version is not based on Petris anymore. This should solve some issues, but probably introduce new ones, as it is a lot less tested. Therefore this version needs a lot of playtesting and bug-hunting.
    The algorithm has been split into two, one with the next block preview (normal) and one without (harder). New and more sophisticated techniques are now used to write the block-choosing algorithms, which are not fooled as easily as before.
  • version 0.41: new block-choosing algorithm.
  • version 0.37: first public release.

Linux binary

Bastet is included in most distributions; just look for it in your package manager or use your distribution-specific command to install packages, typically one of the following.

sudo apt install bastet
sudo snap install bastet
sudo yum install bastet
sudo dnf install bastet

Many thanks to the people that took care of the packaging: David Moreno Garza, Jan Kasprzak, Alejandro Vera.


If you don’t think it is too frustrating to run both Windows and Bastet at the same time…

Unsorted patches and material

  • A patch for getting Bastet 0.41 to compile under Mac OS X. Thanks to Lawrence Gold (who sent me this patch), Chris Clepper, Saad Mahamood and Tim Douglas for reporting the problem and its solution.
  • Another patch for 0.41, which fixes an improper use of the select(2) call, submitted from Rudolf Polzer
  • Abandoned Bricks, a nice SDL tetris clone by Milan Babuskov, features a “Bastard mode” based on Bastet.

Thanks to everyone who mailed me about bugs in Bastet, I hope the next version will fix them all (and be much more bastard than you can even imagine)


Bastet is old work and no new versions are planned, but the game is not abandoned yet.