GithubHelp home page GithubHelp logo

croissant's Introduction

Croissant

This is a crossword solver backed by various SAT solvers.

This is slow.

This is unusable.

This is a toy project.

Play

First, install Rust โ€“ you'll need the nightly toolchain.

Then try this out:

cargo run "\
....
..#.
A..."

It should return:

CHIZ
HE#O
ASIA

Good job! You just created a crossword. Now you can read the help page:

๐Ÿฅ Welcome to Croissant, a crossword solver that smells good

Usage: croissant-cli [OPTIONS] <GRID>

Arguments:
  <GRID>
          The grid as a string; Each new line is a new row, '.' is a blank, '#' is a block

Options:
  -w, --wordlist <WORDLIST>
          The path to the word list; File must contain one word per line and nothing else

  -s, --solver <SOLVER>
          The solver to use
          
          [default: logicng]

          Possible values:
          - cadical: The slow; Its name sounds good though, doesn't it?
          - logicng: The less slow and thus the default; Congrats!
          - splr:    The slowest and buggiest, but that's why we love it โค๏ธ

  -c, --count <COUNT>
          The desired number of solutions
          
          [default: 1]

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

Enjoy!

Goals

  • โœ… Have fun!
  • โœ… Explore SAT solvers available in Rust:
  • โœ… Implement a CLI using clap.
  • โœ… Understand Cargo feature configuration: Put each bundled solver behind a feature flag.
  • ๐Ÿšง Discover WebAssembly: Compile Croissant to wasm and call it from a simple web application.
  • ๐Ÿšง Scratch dynamic loading in Rust: Discover and use solvers compiled as shared libraries.
  • ๐Ÿšง Document and publish a crate.

Other Projects

If you're looking for a fast crossword solver in Rust, check out xwords-rs.

If you're looking for another SAT-based crossword solver, check out Croiseur and its SAT solver plugin. It's in Java.

croissant's People

Contributors

super7ramp avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.