#cli-game #game #fun #terminal-window #cli #config-file #access-token

app guess-that-lang

CLI game to see how fast you can guess the language of a code block!

20 stable releases

1.0.20 Aug 22, 2022
1.0.19 Aug 21, 2022

#55 in Games

27 downloads per month

Apache-2.0 and LGPL-3.0-or-later

435KB
1K SLoC

Guess That Lang!

Share Your High Score

CLI game to see how fast you can guess the language of a code block!

If you like the game, please consider giving a ⭐!

Game Demo

Code is retrieved from either random repos or random gists on GitHub using any of the top 24* most popular languages from the Stack Overflow 2022 Developer Survey. *VBA is replaced with Dockerfile

The code is then processed in a number of ways to make the experience more enjoyable.

Installation

Using Prebuilt Binaries
  • With Bash
    curl -fsSL "https://bina.egoist.dev/Lioness100/guess-that-lang" | sh
    

    Using Bina

  • Manual Installation

    Prebuilt binaries are available for Windows, Linux, and macOS and can be found attached to the latest release.

Building From Source

⚠️ Rust 1.63.0 or higher is required to build. Rust can be updated with rustup update.

Install Rust and then run:

cargo install guess-that-lang

Usage

It's strongly recommended to provide a Github personal access token. This will allow the game to make more Github requests before getting ratelimited. Click here to make one (no scopes are required).

⚠️ Resizing the terminal window while playing will cause the game to go a bit wonky.

# Tokens will be stored in a config file so you only need to input them once.
guess-that-lang --token "XXX" # or -t

# Get code from gists rather than repos.
# Repos generally provide better code quality, but gists require less API calls.
guess-that-lang --provider gists # or -p

# Wait 5 seconds after showing the options before starting to reveal code. (Default: 1500)
guess-that-lang --wait 5000 # or -w

# Reveal lines in random order instead of top to bottom. (Default: false)
guess-that-lang --shuffle # or -s

# Theme overrides will be stored in a config file so you only need to input them once.
guess-that-lang --theme dark
guess-that-lang --theme light

Acknowledgements

This game takes heavy inspiration from both guessthiscode and stripcode.

Contributing

I'm a beginner at Rust, so if you see any code that can be improved or have any general ideas, please let me know! Feel free to open an issue or a pull request.

Dependencies

~11–23MB
~355K SLoC