Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
config
include
lib/bingad
priv
src
test/eunit
.gitignore
LICENSE.txt
Makefile
README.md
rebar.config
rebar.lock

README.md

Scrabblecheat Server

The brain of all of ScrabbleCheat, using GADDAGs to generate moves on a board given a rack. We used Apache Thrift's Erlang bindings circa 2011 to RPC to clients, but maybe I'll bolt on an HTTP server or something.

Running instructions

I wrote the bulk of this in 2010, when I was less experienced and we had way less consensus on what was good or not.

To open a shell:

  • Ensure you have rebar3 and a C compiler installed.
  • make

What's happening

Building GADDAGs with a C executable

ScrabbleCheat uses a custom binary format for its GADDAGs. I stated why in the bin_trie comments, but we took a 300MB binary structure and made it 30MB. To build these GADDAGs, we use a C program called Bingad. It lives in lib/bingad

So the Makefile first compiles the C program, then uses it to make the dictionaries. It also has unit tests, but you need to ensure that Check is available to be linked.

Rebar3 for dependencies

From here, we do the more formal Erlang build process, powered mostly by rebar3. Bless the authors for improving the tooling.

You can’t perform that action at this time.