Minor change: Added constant for strings
[wordblah.git] / README.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8" />
5 <title></title>
6 </head>
7 <body>
8 <h1>Wordblah Readme</h1>
9 <p>Wordblah is a crossword puzzle creator and maker written in C. The creator is a terminal application and
10 the default player application is written in GTK.</p>
11 <h2>Features</h2>
12 <ol>
13 <li>Square grid upto 25x25 supported.</li>
14 <li>Add words across or down.</li>
15 <li>Automatic word numbering after grid is frozen.</li>
16 <li>Add word Clues.</li>
17 <li>Export the puzzle and/or solution in PNG format.</li>
18 <li>Export the clues as a text file.</li>
19 <li>Password protect the puzzle for editing (master password)</li>
20 <li>Password protect viewing the solution (in the player application)</li>
21 </ol>
22 <h2>Compiling</h2>
23 <p>To compile the source, simply run <code>make</code> inside the source directory.</p>
24 <p>Requirements</p>
25 <ul>
26 <li>Linux or UNIX-like OS</li>
27 <li><a href="https://clang.llvm.org/">clang</a> - C compiler and GNU <a href="https://www.gnu.org/software/make/">make</a>.</li>
28 <li><a href="https://libgd.github.io/">libgd</a> devel (available on most *nix)</li>
29 <li><a href="https://www.zlib.net/">zlib</a> devel (available on most *nix)</li>
30 <li><a href="https://www.openssl.org/">libcrypto</a> devel files (available on most *nix)</li>
31 <li><a href="https://www.gtk.org/">libgtk-3</a> devel files (for the player application)</li>
32 <li><a href="pkg-config">pkg-config</a> (for GTK)</li>
33 </ul>
34 <p>The above dependencies would be installable using your distribution's package manager. Check your distribution software
35 repositories for more information. If everything went well, two executables <code>wordblah</code> and <code>wordblah_player</code>
36 should be created in the source directory.</p>
37 <h2>Usage</h2>
38 <h3>Creating a puzzle</h3>
39 <p>To run the creator application just run <code>./wordblah</code> from the command line from within the directory
40 where the executable resides. (to run the player application the executable is <code>wordblah_player</code>.)</p>
41 <h4>Command line options</h4>
42 <p>To open an existing puzzle file</p>
43 <pre>./wordblah &lt;filename&gt;</pre>
44 <p>To create a new puzzle file</p>
45 <pre>./wordblah &lt;filename&gt; new &lt;gridsize&gt;</pre>
46 <p>Where <code>gridsize</code> is any number less than the maximum allowed size. <b>Warning:</b> using <code>new</code> will
47 overwrite any existing file without warning once you save!</p>
48 <h4>Notes</h4>
49 <ul>
50 <li>First create a new puzzle from the wordblah main menu if you haven't already invoked the command line
51 arguments to create/open a file. Choose an appropriate grid size - this cannot be changed later!</li>
52 <li>Add words across and down. Note that, any letter that crosses any other word will overwrite existing cells without warning.
53 This is deliberate to keep building the puzzle simple and without too many prompts. You can always make modifications to
54 the puzzle until you are satisfied.</li>
55 <li>Once satisfied with your grid, choose "Freeze grid" from the menu. This will black out unused grid cells and also number the
56 across and down words. Now you are ready to add the clues. Once a grid is frozen, you cannot add any further words to make
57 changes to existing words. To make changes to words in frozen grids, first unfreeze the grid by choosing "Unfreeze grid".
58 <b>Warning:</b> Unfreezing a frozen grid will remove all the word clues once you save and reload the file - this is because
59 unfreezing potentially changes the entire grid, including the list of words and word positions.</li>
60 <li>Add clues for all the words. From "Set Clue - Across Word" and "Set Clue - Down Word" from the menu. Remember to save the
61 puzzle from time to time! You can only add clues in frozen grids</li>
62 <li>You may want to optionally password protect the puzzle from being unauthorizedly edited by setting the master password.
63 Choose the menu "Set master (editing) password" from the menu.</li>
64 <li>You may also want to optionally protect the solution from being revealed in the player application when the user clicks on
65 <i>View -> Reveal Solution</i> menu item. Choose "Set solution password" to set the password to protect the solution from
66 being revaled in the player.</li>
67 <li>Both master and solution password can be reset to no password by simply choosing the above options and not typing any
68 password (simply press enter for a blank passowrd).</li>
69 <li>Save and quit.</li>
70 <li>Only frozen puzzles can be opened and played with the player application. Unfrozen puzzles are incomplete, hence cannot
71 be played.</li>
72 </ul>
73 <h2>License</h2>
74 <p>Copyright &copy; 2020 V.Harishankar (<a href="http://harishankar.org">http://harishankar.org</a>)</p>
75 <p>This software is released under the 3-clause BSD license. Read LICENSE.txt for more information.</p>
76 </body>
77 </html>