Skip to content

Lioness100/guess-that-lang

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

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.