Giter Club home page Giter Club logo

crossword_puzzle's Introduction

crossword_puzzle

cross-main-pic licence PyPI version Publish to PyPI.org release issues CodeQL Tests

An educational GUI package built with CustomTkinter that allows you to select, configure and generate a crossword to view, interact with and complete in a Flask web application.

Dependencies

Babel customtkinter Flask flask_babel Pillow regex

Installation

Important

Installing crossword_puzzle requires Python and pip. If you have Python installed without pip, click here to install it.

If you do not have Python installed, download the installer here, then refer to the previous link on how to install pip.

Tip

If using python or pip doesn't work, try using python3 or pip3.

  • Make a virtual environment and activate it (recommended):
pip install virtualenv
python -m venv venv
MacOS/Unix: source venv/bin/activate
Windows: venv\scripts\activate
  • Install the package in your system directory/virtual environment:
pip install -U crossword-puzzle

or, install the package in your home directory if you aren't using a virtual environment:

pip install --user -U crossword-puzzle
  • Initialise the GUI through the entry point:
crossword-ctk
  • You can deactivate your virtual environment when you are done:
deactivate

Documentation

Check out the wiki here for information on usage, troubleshooting, FAQ, and more.

Third-party library acknowledgements

  • Flask - Web framework for the crossword web application
  • Babel - l10n functionality and management of message catalogues
  • flask-babel - i18n integration for the Flask web application
  • CustomTkinter - Creation of the main GUI
  • Google.Cloud.Translation.V2 - Translation of locales
  • Pillow - Image processing services
  • regex - Alternative to the standard re module, required for some functionality
  • Zoomooz.js - jQuery library for making webpage elements zoomable
  • gulp.js - Toolkit to help automate the web app's JavaScript transpilation
  • Babel.js - JavaScript transpiler
  • Terser - JavaScript minifier

Other acknowledgements

Gallery

crossword puzzle home
crossword puzzle browser
crossword puzzle game english
crossword puzzle game japanese

crossword_puzzle's People

Contributors

tomasvana10 avatar dependabot[bot] avatar ai-rafat avatar

Stargazers

 avatar SapphireKR avatar

Watchers

 avatar

crossword_puzzle's Issues

Word placement error in crossword generation

Edit: Initially, this appeared to be an isolated bug. However, it is now evident that this always happens with the same crossword set, booleans-easy. In most scenarios, "OR" is intersected with "DEMORGANSLAWS", then "XOR" is placed on top of "OR". When just viewing the regular crossword output from the terminal, nothing seems wrong. However, since the web app creates the HTML through the crossword's data, both number labels are present, as well as their definitions list items. The definitions list item for "OR" is broken.

This bug is likely resulting from an error in _can_word_be_inserted.

The most common form of this bug (9 is "OR")
Screenshot 2024-03-26 at 1 22 22 pm

Bad wrapping for dropdown buttons

The dropdown buttons do not wrap properly when resizing the window. To fix this, I tried to use flex-wrap: wrap, but this results in the dropdowns being in the wrong place when you open them (if the buttons have wrapped)
Example:

image

For now I will leave the wrapping off for these.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.