What is Macondo?
Macondo will some day be a world-class Crossword Game AI.
But for now, it is in beta, so download and use at your own risk. It does no machine learning and it doesn’t have all of Quackle’s parameters yet. The interface is minimal. In short, it should just be used for research. Please expect things to break!
Tutorial video: https://youtu.be/MOyzyKskr_4
- The Macondo team
- Change Log
- CGP File Format
- Manual / Documentation
- How it works
- Why the name Macondo?
How to install
Navigate here: https://github.com/domino14/macondo/releases
Download the latest file for your operating system.
Try opening the
macondoexecutable. If you are using Mac OS, your system might complain. You can open it anyway by going to your Settings -> Security & Privacy -> General and click “Allow anyway” next to macondo. I swear it’s not a virus.
Features it has:
- Simple static move evaluation engine, using exhaustive leave values. Values are slightly better than Quackle’s.
- Multi-core Monte Carlo simulation. Should be a bit faster than Quackle.
An exhaustive endgame solver using minimax + alpha-beta pruning + iterative deepening + multithreading. It should be able to solve every complex endgame. However, depending on the complexity, it can be slow (think several hours). We will work on speeding this up.
- For the large majority of endgames, it should be able to find a solution in a few seconds.
- A fully exhaustive 1-in-the-bag pre-endgame solver
- A very simple opening-move placement heuristic value
- GCG load and navigation
- Very fast import from cross-tables, Woogles, and GCG files
- Automatic game playing (on my 2017 iMac it can play ~70 games per second against itself)
- Command-line driven with a simple shell
Features it’s missing that Quackle has:
- A proper GUI, and all that entails.
- Pre-endgame heuristic values for simulations (in our experiments, though, we’ve found that Quackle’s values did not really provide a benefit)
- 2 in the bag pre-endgame solver (Quackle’s is not fully exhaustive but still decent)
Features we will add in the future:
- Heat maps
- Graphs of score distributions per simmed play
- Machine learning! (taratantara!)
- And more!
How to use
Open the executable. If you wish your default lexicon to be CSW21, you must set the environment variable
CSW21. Otherwise, it defaults to NWL20. In this case you can set your lexicon by typing in
set lexicon CSW21into the macondo prompt.
*.kwgfiles for your desired lexicon to the
./data/lexica/gaddagfolder. You can find kwg files at https://github.com/domino14/liwords/blob/master/liwords-ui/public/wasm
Note that many commands are very primitive. I did not want to expand this shell interface too much as I expect the actual interface to be a GUI. As such there are things that you probably shouldn’t do, like sim a position and generate other positions at the same time.
See this quick video tutorial. Note that this can quickly go out of date. I’ll make another tutorial when a GUI is ready. https://youtu.be/MOyzyKskr_4
See also this video that demonstrates how to use the “infer” command in depth: