Skip to main content

Your old buddy, Snake, slithering through your terminal! (WIP)

Player Section

Key Features:

  1. It's Fun! Why not play a game of Snake while compiling code inside your terminal?
  2. Cross-Platform: Works seamlessly on any operating system and terminal thanks to Textual.
  3. Vim Lover Support: Move your snake with WASD, arrow keys, or HJKL.
  4. Pretty Snakes: Choose from a palette of 20 colors for your snake’s body.
  5. Game Controller Support (Experimental): Play Snake using the arrows on your game controller.
  6. Local Multiplayer (Coming Soon): Play Snake on your couch with a buddy—team up or compete.
  7. LAN Party (Coming Soon): I see, you are a pro player... No need to share your PC with filthy casuals!

Needed Tools

For Windows:

  1. Python Installation:
    • If you don’t have it installed, download Python from the official website.
    • During installation, make sure to check the checkbox that says “Add Python to PATH”.
  2. Install Scoop:
    • Scoop is a command-line installer for Windows. If you don’t have it installed, follow the instructions on the Scoop official website.
  3. Install pipx:
scoop install pipx
pipx ensurepath

For macOS:

  1. Install Homebrew:
    • Homebrew is a package manager for macOS. If you don’t have it installed, follow the instructions on the Homebrew official website.
  2. Install pipx:
brew install pipx
pipx ensurepath

For Linux:

  1. Install pipx:
    • Install pipx using your package manager.

FocusTUI Installation (every OS)

Once you have pipx installed, you can easily install tui-snake:

  1. Install tui-snake:
pipx install tui-snake

Run the App

After installation, you can start tui-snake by typing:

tuisnake

Dev Section

This is my experimental repo where I break a few rules and test different approaches.

Guidelines & Rationale:

  1. The entire app is built inside one file (.tcss does not count).

    I used to split code into many modules. Then, I saw msgspec, a single file with 20K lines. I wondered: is this a good practice? Is maintaining such a codebase difficult?

  2. No unit tests unless absolutely necessary.

    Unit tests create tons of dead code. Instead, let’s focus on writing more features. The app should work as a whole, not just individual procedures. A holistic view of the system is preferred.

  3. No code comments unless the code is tricky or unreadable at first glance.

    The API should be logical and easy to use. If I need comments, I should simplify the code instead.

  4. No linters.

    I want to develop my own coding style by reviewing the code myself, not following linters’ orders.

  5. Code should be "static" – no type mixing.

    Static typing has its benefits. Mixing types makes the code harder to work with.

  6. Big procedures.

    Splitting one big procedure into many smaller ones makes navigation harder and increases the call stack.

Metadata

Release files for tui-snake 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tui-snake 0.0.3
File Size Uploaded
tui_snake-0.0.3.tar.gz 237.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tui-snake 0.0.3
File Interpreter ABI Platform
tui_snake-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 473.4 kB

Release files / tui_snake-0.0.3.tar.gz

Download URL tui_snake-0.0.3.tar.gz
Size 237.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f4c9325762be76bc0fdb167bb023a00a66d3f2598b46e890ccb1d69bb83c190a
BLAKE2b-256 checksum
How to use checksums
9c811c3e3ac95e0a2a476789bcacb2a7a493ad98494fe701c5c0855f9a84f4bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / tui_snake-0.0.3-py3-none-any.whl

Download URL tui_snake-0.0.3-py3-none-any.whl
Size 235.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a5998a54a118c76d27cd8a013e6ee1a4b03ba62de76cb0e05978064b53aa818f
BLAKE2b-256 checksum
How to use checksums
a0d3cf3a00f11dc1f3b1afba40af9b80717f31f10342c8aa570b7e55874c45a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page