macondo

A crossword board game AI, written in Go

View on GitHub

Manual

How to create a leaves structure

You must first create a CSV that contains every possible 1 to 6 tile leave value in your lexicon. e.g:

?,30
A,2
B,-1
..
..
?ABCD,15
..
..


Then clone the wolges repo and install Rust on your computer. Andy has created a small, fast leaves file structure, but it requires a different repo and language to create. If anyone wants to help translate it to Go, please make a PR!

You can then follow the instructions in the wolges README to make a klv2 file. For example:

cargo run --release --bin buildlex -- english-klv2 leaves.csv leaves.klv2

How to create a GADDAG file

A GADDAG is a data structure that makes move generation very fast. Macondo needs GADDAGs in order to generate moves for a given lexicon.

You first need a text file for your lexicon. See the wolges README instructions for how to make a .kwg file (this is a Kurnia Word Graph, which encodes a GADDAG). For example:

cargo run --release --bin buildlex -- english-kwg CSW21.txt CSW21.kwg

You can then move this kwg to the appropriate data sub-directory.

You can download some gaddags from the liwords repo; see https://github.com/domino14/liwords/blob/master/liwords-ui/public/wasm.