Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft Contest #58

Open
Leo-Nicolle opened this issue Jan 15, 2024 · 0 comments
Open

Draft Contest #58

Leo-Nicolle opened this issue Jan 15, 2024 · 0 comments

Comments

@Leo-Nicolle
Copy link
Owner

Leo-Nicolle commented Jan 15, 2024

I would like to make a code contest, a hackathon to solve the autofill problem. Don't know yet where to publish, how, how to make sure some people would subscribe and try, etc. But let's throw in some ideas:

Draft of the contest presentation

Crosswords filling up contest

You will have to create a program in Javascript or Typescript that fills up a crossword grid with words from a dictionary. In order for the grid to be valid, it needs to satisfy the following requirements:

  • All the words present in the grid must exist in the dictionary (vertically and horizontally)
  • There are no one letter words (minimum word length is 2 included)
  • Every word should be related to at least one definition square. Definition squares must be placed adjacent to the word, at the beginning.
  • There must be no island in the Grid (explanation below)

We provide three dictionaries: english, spanish and french. Your program must be able to use any of those and complete a grid with it.
The best algorithm will be one that manages to create valid grids the fastest AND who will be able to place the most words out of a chosen shortlist from the dictionary. We will make each algorithm compete over a thousand pair of Grid+shortlist each language, and compute a score for each:
$score = speedRank + validGrids + placedWordsRatio$

Where speed rank is the position in the list you are in (normalized), validGrids is the ratio of valid/nonValid grids and placedWordsRatio is the ratio of words in the shortLists placed in each grid.
By applying to this contest, you understand that your code will be published under MIT license into this contest repo.

Duration of the contest

You will have 48 hours to complete your algorithm

Given Materials

  • 3 dictionaries (English, Spanish, French)
  • 1000 pair of Grid + words shortList per language in JSON
  • Some stats about the dictionaries, it might help.
  • Some test utils to check that a Grid is valid (which will be used for final testing to check your algo's outputs)
  • Our implementation of filling-up problem (so you can get ideas, steal some code, and benchmark your results before jumping in the pool of sharks)

Constraints

  • You CAN modify the input grid, meaning you can move definition squares around. Just make sure the final grid remains valid.
  • You CANNOT modify the dictionaries: add/remove words from them <= **Not too sure about this one for now, it means you could simply start a new grid from scratch, would it be fair ? **
  • You CAN use WebGL or WebGPU
  • You CAN ignore accents
  • You CAN reuse all or part of the code we will provide
  • You CAN use any library publicly available online (npm, cdnjs etc)

Prizes

  • Winner: 1M dollars and your solution will be integrated into MotsFlex
  • 2nd: I don't know
  • 3rd: I don't know

Good luck !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant