This is a question about puzzle-building. I very much enjoyed (albeit not solved) the puzzle Find the missing elephants by GOTO 0. And, as it is often the case with intriguing puzzles, it sparked some ideas of my own. (No need to worry, I'm not planning to put tons of clones online anytime soon...)

However, I then asked myself: How does one best build and verify such puzzles? Simple kernel-convolution puzzles I would have a good idea how to build & test, but anything with a complex conditional like in this particular puzzle, I don't know.

What tools/methods are you using/would you use to build such puzzles?


1 Answer 1


I cannot give any general recommendations on how to create great puzzles, but I'm glad to explain how the particular puzzle mentioned in the question was made.

The elephant puzzle was built (you guessed it) with a computer program: I tried out a few different algorithms before coming up with one that seemed good enough to make a puzzle.

Random numbers are produced with a seeded random number generator: this makes sure that we can always replay an interesting arrangement after we find one.

The board is created in three successive steps. First, all directions are set up randomly. Next, each row is scanned and cells are partitioned in subsets of color-matching elephants, ehm, elements. Each of these subsets is assigned a different color, chosen randomly from a palette of four colors. The last step is the rendering. This is done in Javascript/HTML. Just grab a screenshot and use GIMP to export the board.

The source code of the generator can be found here: https://github.com/fasttime/Elephant-Puzzle-Maker

  • 1
    $\begingroup$ Thanks a lot - also for the code. I have 'accepted' your answer as it was your puzzle that sparked it. However, I would really appreciate if more people would post answers as well. And Goto0: I'm glad you needed a computer, I would have felt dwarfed if you'd told me you do it by hand ;c) $\endgroup$
    – BmyGuest
    Dec 2, 2014 at 7:04
  • $\begingroup$ @BmyGuest Happy to help. I'd also like to hear a few other voices. $\endgroup$
    – GOTO 0
    Dec 2, 2014 at 7:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.