Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alokmenghrajani/go-crossword-maker
A crossword maker (crossword compiler / puzzle creator) written in Go. Solves the constraint satisfaction problem related to building crosswords from a list of words.
https://github.com/alokmenghrajani/go-crossword-maker
crossword generator
Last synced: about 1 month ago
JSON representation
A crossword maker (crossword compiler / puzzle creator) written in Go. Solves the constraint satisfaction problem related to building crosswords from a list of words.
- Host: GitHub
- URL: https://github.com/alokmenghrajani/go-crossword-maker
- Owner: alokmenghrajani
- License: apache-2.0
- Created: 2017-02-01T23:33:09.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-02-24T18:08:13.000Z (almost 8 years ago)
- Last Synced: 2024-06-20T08:09:38.199Z (7 months ago)
- Topics: crossword, generator
- Language: Go
- Size: 1.96 MB
- Stars: 9
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-crossword-maker
A crossword maker written in Go (also known as a crossword grid compiler, setter, creator,
generator or composer). Solves the constraint satisfaction problem related to building crosswords
from a list of words.This code is currently work in progress. You can run `go test -v .` and that's about it.
# building and running tests
To run the tests
```
go test -v ./grid ./words ./generate .
```To run the code
```
go build
./go-crossword-maker --wordlist ukacd.txt --size 4
```# motivation for writing this in Go
I need a crossword maker which will perform reasonably well with a small wordlist. I'm building
a crossword with a very specific theme. It's a hard problem to solve manually and I found a
bunch of academic papers on this topic but not much usable code.So I figured I'll implement my own piece of code and see how far I can get.
I picked Go because I want the end-result to be a command line tool that can run across multiple
different platforms. Go makes cross-compiling easy.I also figured that Go enables writing efficient parallel processing code and that it will be
easier to keep all the cores busy. The box I'm planning to run this has multiple CPUs with 10 cores each.# other ideas
- how hard would it be to make this run on a GPU?