LinuxCommandLibrary

bastet

Play Tetris in the terminal

TLDR

Start a Tetris game

$ bastet
copy

Navigate the piece horizontally
$ [<ArrowLeft>|<ArrowRight>]
copy

Rotate the piece clockwise or counterclockwise
$ [<Space>|<ArrowUp>]
copy

Soft drop the piece
$ <ArrowDown>
copy

Hard drop the piece
$ <Enter>
copy

Pause the game
$ <p>
copy

Quit the game
$ <Ctrl c>
copy

SYNOPSIS

bastet [-h|--help] [-v|--version] [-l|--level N] [-s|--practice] [-r|--replay] [-d|--droptime MS] [-a|--autopause]

PARAMETERS

-h, --help
    Display help and exit

-v, --version
    Output version information and exit

-l, --level N
    Start at level N (0-20, default 0)

-s, --practice
    Disable adversarial AI for practice mode

-r, --replay
    Replay the last recorded game

-d, --droptime MS
    Milliseconds per row drop per level (default 1000)

-a, --autopause
    Pause when terminal loses focus

DESCRIPTION

Bastet is a brutally challenging Tetris implementation for Linux terminals, powered by ncurses. Dubbed 'Bastard Tetris' after the Egyptian goddess Bastet, it features an AI that adversarially selects the worst possible tetromino for the player, ramping up difficulty dynamically.

Gameplay starts at level 0, where pieces drop every 1000ms, speeding up per level. Clear lines to score points and advance; incomplete lines shift down. The AI analyzes the board to send problematic pieces like S/Z skew or long I straight down narrow wells.

Supports practice mode to disable AI meanness, custom start levels (0-20), drop speed tweaks, game replay, and auto-pause on focus loss. High scores persist in ~/.bastet.scores. Ideal for quick sessions or masochistic skill-building, but expect short games on higher levels.

Requires a color-supporting terminal of at least 20x12 chars. Controls are intuitive keyboard inputs.

CAVEATS

Needs 256-color terminal for best visuals; small windows (<20x12) fail. AI unbeatable long-term; scores saved only if writable ~/.bastet.scores.

CONTROLS

←/→: move, ↑: rotate CW, ↓: soft drop, Space: hard drop, p/q: pause/quit, r: restart.

SCORING

Line clears: 40/100/300/1200 points (1-4 lines) × level. Bonus for back-to-back T-spins/S/Z.

HISTORY

Created in 2007 by Julien Letessier as a C++/ncurses project. Gained cult status for AI twist; packaged in Debian/Ubuntu/Fedora repos since ~2010. Minor updates for portability.

SEE ALSO

ncurses(3)

Copied to clipboard