Skip to content

letterfowl/Platyrhynchos

Repository files navigation


🦆 Platyrhynchos 🦆

Automatic crossword generator!
🏳️‍🌈🇵🇱🇪🇺

Explore the docs »

Repo size OSSAR CodeQL GuardRails badge autoflake, isort, black .github/workflows/pytest.yml codecov License: CC BY-NC-SA 4.0

Table Of Contents

About The Project

Platyrhynchos is a project centered around creating word-centric crossword generation algorithms. This can be viewed as an alternative to methods that focus on generating matrices filled with letters and mutating them to make them into crosswords.

Currently, we are investigating a "smart" word insertion method that finds the worst rows and columns and tries to improve their score. Currently, we have implemented a direct search algorithm that works by finding the best word to insert into the row/column and then inserting it. This is repeated until the score of the crossword cannot be improved.

Built With

  • Python
  • Poetry
  • Pyodide
  • PyTest
  • functiontrace
  • Webpack
  • Supabase

Getting Started

Pyodide-based execution

  1. Move to app directory
  2. At the same time, run npm run serve and npm run pywatch. This will start a webpack server and a Pyodide build watcher.
  3. Open localhost:8080 in your browser (although, it should open itself).

Running the code locally

  1. Make sure to have Python 3.10 and Poetry installed
  2. Run any of the scripts using poetry run ...

Roadmap

See the open issues for a list of proposed features (and known issues). We also use the GitHub Projects tab to track the progress of the project.

Contributing

Any contributions you make are greatly appreciated, but please make sure to get in contact with the authors:

  • If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with necessary changes.
  • Please make sure you check your spelling and grammar.
  • Create individual PR for each suggestion.
  • Please also read through the Code Of Conduct before posting your first idea as well.

Creating A Pull Request

  1. Clone the project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Add tests and make sure they work!
  5. Describe them on our wiki (you can also add doctests there :D)
  6. Push to the Branch (git push origin feature/AmazingFeature)
  7. Open a Pull Request, add reviewers

License

Distributed under the CC Attribution NonCommercial ShareAlike 4.0 International License. See LICENSE for more information.

Contributors

Acknowledgements