Giter VIP home page Giter VIP logo

open-crossword's Introduction

An open-source crossword platform

Deploy static content to Pages CodeQL

Features

  • Play and create crosswords on your computer, tablet, or phone;
  • Browse a list of crosswords authored by the creators of OpenCrossword;
  • Compose your own crosswords with a simple, intuitive interface;
  • Share your puzzles with anyone using a simple link;
  • Remix existing crosswords with the click of a button.

How to submit a crossword

Documentation

Feedback

  • Please report any issues or feature requests on our GitHub issue tracker. We'd love to hear from you!

About

The OpenCrossword Project first started on the evening of July 9, 2022, while I was bored at my grandma's house. It was born out of an obsession over crossword puzzles and a critical viewpoint towards the current state of cruciverbalist software.

open-crossword's People

Contributors

alexis-martel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

open-crossword's Issues

Embeddable puzzles

Is your feature request related to a problem? Please describe.
Crosswords can only be played on the GitHub site.

Describe the solution you'd like
An embeddable puzzle platform.

Describe alternatives you've considered
None.

Additional context
An embeddable puzzle UI with custom colours to match website styling.

Auto Word Button

Add a button that fills in the currently selected region with a word from a user-specified dictionary or list of dictionaries

Puzzle format refinements

Instead of being stored as arrays, puzzle squares should be JavaScript objects, and the attributes (ie style, circled, answer, clue) should be named semantically instead of being hard coded to array indexes.

Slow performance while selecting squares

The puzzle should be divided into arrays of rows and columns after loading instead of recalculating them at every selection event. This could be necessary for larger puzzle sizes.

Builder share UI

Add a dialog on share to give the user the ability to download the puzzle data JSON file, or send a link containing the whole file for server-less sharing.

Active clue bar

There should be a clue bar that would display the current clue. (Issue #8 should be closed before this one)

Mini #2 typos

In the puzzle browser, Mini #2 is shown as being in English, while it is in French. 6-Down contains a typo.

Puzzle squares overlap

Puzzle squares appear a little taller than they are wide, because they overlap. The effect is visible in puzzles that contain invisible squares.

Accessibility Mode

People using assistive technologies may not get the best possible experience on OpenCrossword. An alternate view should be included that displays the clue next to an <input type="text"> indicating the number of characters in the answer.

Select next clue on word end

If the next square is invisible, block, or non-existent, chooses the next clue in the list (click the next button)

Splash screen

On puzzle load, the user should be presented with a splash screen containing the puzzle description and author name, alongside a share and a play button.

Builder prompt

Describe the solution you'd like
Upon opening the compose page. The user should be presented with an option to create a new grid of specified dimensions or to enter a list of words to automatically sort into a grid.

Error: URI too long

Concision of the puzzle data format should be applied. (i.e. clueNumber should be c)

Rich text clues

Add support for HTML styling in clues. The clue value should contain the HTML code and the clue's content should be set using innerHtml instead of textContent.

Builder load file/link

Add the ability to load an existing puzzle file/link to edit an existing crossword or be able to save and edit later.

Typo in web manifest

OpenCrossord.webmanifest should be named OpenCrossword.webmanifest, with a w!

Puzzle builder interface

Design an interface to create puzzles and export them to JSON format. Add support for uploading custom puzzle files as well.

Caps make puzzle unsolvable

Change

this.obj["grid"][i].push([parseInt(this.squares[i * this.width + j].clueNumberInput.value, 10), this.squares[i * this.width + j].answerInput.value, this.squares[i * this.width + j].type]);

to

this.obj["grid"][i].push([parseInt(this.squares[i * this.width + j].clueNumberInput.value, 10), this.squares[i * this.width + j].answerInput.value.lower(), this.squares[i * this.width + j].type]);

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.