A, C++, COMPILER, IS, NEEDED, IN, ORDER, TO, COMPILE, THIS, PROGRAM, BUT, IT, SHOULD, RUN, ON, ALMOST, ANY, COMPUTER, OR, OPERATING, SYSTEM, INCLUDING, LINUX, MICROSOFT, WINDOWS, IRIX, AND, SOLARIS, ============================================ H N I D A G S M R P N + S E N I + R R C H Y S X S C H E N X E N Q S I A N M H I H N W S + E R C N F X N S B O M S L X N P S S L P I Y D E O U O N Y N M A H T U C G N T A E L T N O S H P M E D S G R I H A D A O H T T S E D I O C O M P I L E R U S G E I S N O + S T E F S H D I M N P M S G O + W E E H S N E A S I N M D S C C O M P U T E R L X N R O A N W S D A C H S G M U C E R O I E M I N S R O O O N S N M + X O E G U I O U R M I C R O S O F T A L N W I P G L L M G + M M T U S S N O P E R A T I N G F R P S FThis program makes wordsearch puzzles like the one above. Unfortunately, it doesn't show you the answer!
./configure make make installIf you are running Windoze or something that can't run configure scripts and makefiles, don't sweat it. There is just one C++ source file - no special options or libraries.
No, I won't provide a binary version, project files and such.
eg:
wordsearch < wordsThe program usually manages to fit between 30 and 45 longish words into a 16x16 grid (which is the default). Since its search for places to put words is somewhat random, it may take many tries to fit them all in.
Obviously, you shouldn't use words that are larger than the grid size.
If it takes more than a minute or so to finish then it's probably never going to find a setup that - so kill the program, delete a word or two and try again. I usually start with about 35 words and add more or take some away until they all fit after a couple of minutes run time.
However, if you really need to get every word of your company's mission statement into the puzzle, you can let it run overnight - who knows you might just get lucky!
Try for some nice long words - seven and eight letter words pack in quite nicely. If you have too few words and/or a grid that's too large, it makes it easy to find all the words once you have located one of them.
You don't have to stick with uppercase A through Z, you can add other printable characters (like the '+' signs in the example above). However, since the program always adds in a bunch of random uppercase characters, this isn't truly ideal.
However, if you are really into such things, you can make 'NumberSearch' and 'RandomGarbageSearch' puzzles.
At present, the program is hardwired to generate a 16x16 grid. However, you can edit the GRID_SIZE definition in the source code to change that.
Also, by default, the program is set up so it won't put the words into the grid backwards (ie running from right to left) of diagonally backwards and up or down).
This behaviour is determined by the constant 'HARDNESS'. Set hardness to 1 and all the words will run strictly from left to right with no diagonals or anything. Increasing hardness to values up to and including 8 will make the words run in increasingly harder to spot directions.
Hardness | Possible word directions. |
1 | EAST |
2 | EAST,SOUTH |
3 | EAST,SOUTH,SOUTH_EAST |
4 | EAST,SOUTH,SOUTH_EAST,NORTH_EAST |
5 | EAST,SOUTH,SOUTH_EAST,NORTH_EAST, NORTH |
6 | EAST,SOUTH,SOUTH_EAST,NORTH_EAST, NORTH,WEST |
7 | EAST,SOUTH,SOUTH_EAST,NORTH_EAST, NORTH,WEST,NORTH_WEST |
8 | All Directions. |