# Bastet

"For people who enjoy swearing at their computer, Bastet (short for Bastard Tetris) is an attractive alternative to Microsoft Word." (taken from http://hublog.hubmed.org)

## Description

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.

## Reviews

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.

## Source

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

• Debian/Ubuntu: Bastet is included in the main archive, just type sudo aptitude install bastet. Thanks to Debian maintainer David Moreno Garza for packaging it and including it into the repository.
• 0.41 RPM package for Fedora Core 3, thanks to Jan Kasprzak.

## Windows

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)

## Future

Version 0.43 was published after a long hiatus, due to me working on other projects [including graduating ;-) ]. If I get enough feedback from my (real-life) friends, who already spent a lot of time on 0.37 and 0.41, I could go on. Some bugfixes will probably be needed soon.