Crossword-Arabic
Make crossword puzzles in Arabic script (can be Arabic, Persian, Urdu, or other languages using Arabic script)
Based on my earlier Unicode crossword https://github.com/mapmeld/crossword-unicode
Problems with regular crosswords
Most Arabic crossword puzzles (like this one) separate out the letters so that they can be read in horizontal (right-to-left) and vertical (top-to-bottom) directions. If instead the words were connected horizontally, it would still be awkward to write a vertical word over it and attempt to connect the letter at an angle.
A new way to intersect
I started thinking that words should intersect on the blank space or cut in certain Arabic words. As an example, the word 'Al-Arabiya' is like this: العَرَبِيَّة There are two gaps, one between the A and L, and then the between the R[a] and B. These gaps are common enough that words can intersect often, and it gives the puzzle-solver some hints about what letters should be in the words.
These cuts are marked with a light grey square, regardless of whether another word intersects over it or not.
Usage
Client-side javascript
var game = HTML5canvas columns rows;game; var clue = 'Arabic in Arabic';var answer = 'العَرَبِيَّة'; game; // advanced language optionsgame;
Node module
Using the crossword module in NodeJS requires node-canvas.
Installation pre-requisites:
npm install canvas crossword --save
var Canvas = ;var Crossword = ; var width = 20;var height = 15;var canv = 40 * width 40 * height; var game = canv width height;game; game;
Command Line
Make crosswords from a word list using command line.
Prerequisites: NodeJS and fonts which support your language (preferably Noto Sans Kufi Arabic)
npm install crossword -gcrosswordar wordlist.txt output.png # more custom setup # 20 columns wide, 15 rows high crosswordar wordlist.txt output.png -w 20 -h 15
License
Open source, MIT license