Git Product home page Git Product logo

crossword-maker's People

Contributors

heatherleaf avatar ingemaradahl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

crossword-maker's Issues

Sort the matching words according to theme / frequency / whatever

The matching words are now shown in alphabetical order, and if there are too many matches there's a random selection. One could instead sort the words according to frequency, or some other ranking (e.g. similarity to a given theme). And let the ranking decide the random distribution.

Add support for "Scandinavian style" crosswords

In Scandinavian style crosswords the clues are written directly in the crossword. To support this we need to:

  • be able to have two clues in the same cell (one horizontal and one vertical) (#8)
  • automatically(?) decide which cell should contain the clue, e.g.:
    • vertical words: the cell immediately above
    • horizontal words: the cell immediately to the left (unless there is no cell there, in which case the one above)
    • if there is no cell above/to left, we can perhaps use the one to the left/above - but then we might end up in 3-4 clues in the same cell
  • if a clue is not in the "normal" place we need arrows from the clue to the word (#7)

Support for numbered clues

In most non-Scandinavian countries, a reference to a clue is given as a small number in the corner of a cell, and then the actual clues are listed below the crossword.

Override the lexicon by adding new words

Sometimes the constructor wants to add a word that's not in the lexicon. We can do this e.g. by letting the user write the new word in the search filter. When the filter contains the exact amount of letters, an "override" button appears.

Add words that can turn

If we have a (horizontal) selection that ends in a (vertical) word, then it's also possible to let the selection continue downwards until the end of the (vertical) word. This can be a good alternative if there is no good word matching a selection.

There are two kinds of turns: ⤵︎ and ⤷, and the corresponding arrows have to be shown in the crossing cell.

We have to also take care if the user later extends the original selection horizontally, because then the turn should be removed.

Split clue cells

A clue cell often contains two clues, usually split horizontally

Selecting several lexicons

If we make the lexicons smaller and thematic, we could let the user select several lexicons at the same time, instead of only one.

Change to American/British-style crossword

Change the layout to be like an American/British crossword:

  • No clues within the crosswords
  • Solid black cells where there are no letters
  • Clues are numbered (across/down)
  • List of clues beneath the crossword
  • Add side-words as clues too (i.e., words that are automatically added by the engine)

Generating new random word suggestions

When there are too many matching words, it currently shows a random selection of them. If you want to update the random selection, you can write a letter in the filter and then delete it again. Instead we can have a dedicated "update" button that shows a new random list.

Add narrow blocks, between cells

Make it possible to add blocks between two cells. There are two alternatives:

  • let the user double-click on a wall
  • add the wall automatically if the user ends the selection just before an occupied cell

Replace covered words

If we extend a word (e.g., HORSE --> HORSECART), then we should remove the old word.

Similar: if we have a turned word and add a straight word over it, the turned word should be removed.

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.