Description
Have you ever thought Tetris(R) was evil because it would not send you that straight "I" brick you needed in order to clear four rows at the same time? Well Tetris(R) probably is not so evil, but Bastet certainly is. >:-) Bastet stands for "bastard tetris", and is a simple ncurses-based Tetris(R) clone for Linux. Unlike normal Tetris(R), however, Bastet does not choose your next brick at random. Instead, it uses a special algorithm designed to choose the worst brick possible. As you can imagine, playing Bastet can be a very frustrating experience!
Further information is in the README file inside the package, so go and grab it now.
For information, bugs, feature requests, and highscores submits you can send me an e-mail.
Reviews
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.
Screenshots
Download
Linux source
-
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: features a brand-new AI, which should provide a much less boring gameplay and avoid some bugs of the previous one. I have not done any work on the interface since my primary goal is having a good algorithm, and not the eye-candy. This new version somehow avoids the endless queues of the same block you saw in 0.37: unfortunately, this makes the game a bit easier (now you can do five lines with much less effort). If you do not like the thing, you can tweak the figures at the bottom of bast.c, which should look like this:
const int bl_percent[BLOCK_TYPES]={75,92,98,100,100,100,100};that is: 75% chance you will get the worst brick, 92-75% for the second one and so on (no chance to get the best three bricks). Editing to 85,95,100,100,100,100,100 will considerably increase the difficulty of the game (TODO: some better way to choose this...). Moreover, the old 0.37 algorithm can be compiled in (instead of the new one) by simply renaming bast-old.c to bast.c - version 0.37: First public release.
Linux binary
- Debian (and Ubuntu): Bastet is in the main archive, just type
aptitude install bastetand you are done. 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
- version 0.41: Salvatore Meschini has ported Bastet to Windows; so, if you don't think it is too frustrating to run both Windows and Bastet on the same pc, here it is. The package includes both the source (for MinGW32+PDCurses) and the pre-compiled binary.
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.
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.