Box Relatives

Thoughts about puzzles, math, coding, and miscellaneous

Making JPZ puzzles

| 0 comments

So a while back I made a crossword for Brendan Quigley’s site. You can check it out here. If you haven’t done it, go ahead. I’ll wait. Listen to some defective turrets while you solve.




Okay, now you might have solved on paper, but you probably shouldn’t have. Ooh, should have warned you about that ahead of time. Um, the point is: how did I make the .jpz file? If I had Crossword Compiler, it probably would have been easy, but I don’t. So if you’re interested in how to make these things, come along!

Step 1: Make a .puz file of your crossword. Most everyone can do this, so I won’t say much here. If your puzzle is like mine, it won’t work as a .puz file, but at least you can get the letters and black squares in the right places.

Step 2: Open your .puz file in Crossword Solver and then go to File -> Save As -> *.xml puzzle files. This will create a .jpz for you. So you’re done, right? Um, no.

Step 3: Open the resulting .jpz file in a text editor. I like Notepad++ for Windows or TextWrangler for Mac.

Step 4: Okay, let’s change the numbering scheme first. That’s probably the easiest thing to do. Look for a line in your file that looks something like

<cell solution="R" x="4" number="4" y="1">
</cell>

This says that the fourth (x=4) square in the first row (y=1) has the number 4. If you want to change it, just change that number to whatever you want. You’ll then need to change the number of the corresponding clue(s), which appear in the file as follows:

<clue number="4" word="52">
  <span>Bawdy</span>
</clue>

Step 5: All right, after changing all of those, you’ve got a new numbering scheme. But my .jpz file had a few extra bits as well. First, you’ll notice that some of the entries in the grid go through walls. You can make words go however you want by changing the part that looks like this:

<word id="7">
  <cells x="10" y="2"></cells>
  <cells x="11" y="2"></cells>
  <cells x="12" y="2"></cells>
  <cells x="13" y="2"></cells>
  <cells x="14" y="2"></cells>
  <cells x="15" y="2"></cells>
</word>

This is pretty self-explanatory, right? This defines the word with the given ID. Tell it what cells you want it to comprise and you’re set.

Step 6: Oh, wait, there’s more! What if you want a letter (or number) in the upper right corner of a cell? That’s easy. Just change a cell description to

<cell solution="E" x="1" top-right-number="B" y="13">
</cell>

Step 7: What, there’s more? Yes! Notice that my .jpz has background images! How the heck do you make those? Why, MS Paint, of course! Although you can use something more sophisticated if you want. Make some sort of square image (I think mine were 100×100). Then – convert them into Base64 format (what?). A simple web search led me to this page which allows you to upload a file and gives you an intimidating-looking string in return. Then just take that string and shove it into a cell like so:

<cell solution="E" x="1" top-right-number="B" y="13">
  <background-picture format="PNG" rebus="false">
    <encoded-image>
iVBORw0KGgoAAAANSUhEUgAAAGQAAABlCAIAAAA03NGmAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAT0SURBVHhe7V1NSFRRFH7vjYVBkIsgyYVRkGGg
RkRJNNWiImKSIBJcJC0qiKBoYZuYyKBFi4gWQUFCQYQRuCuinVFEYGSQFCG0EQwKXARJOmNnfOOb
O+/vnnPngb1z5q1E733zzve+891zzj3XsZ3rcxbxal5t3Trg9I0U3Xk39juXdzvEe6RyuImR07+t
O+8XPHOFIAX2xoJVAcRPhHdT5b9taLJTSRKjh44FC4HDQDdikNGT/YeTnKZG86fKZ52z200c2fwj
l3UmgGVIDYDpalYQUiXN+j4TrUyB19i1roxsY4OV3yMLKZ3AV4OlajnQCgIIaReNHR9/lGgItBro
pk3kAavW5oqTeg4rk1YYN/TLv1haYcCqciBX1wWqlYuCjc8Nh3JOf6fWbXmoU7gVBOOFI0VjlpYz
4J5DucyhTYZRrvb+yz6AwCzts0I14tyLct1GOziNAwyrDmk0tfZnNqw67GqxL+wMmcu7CEFYDTFv
pnClATMspWOS1Cz2hcAkweppY7sOuq6QmMBLSIOiwYIMWkeUnjbHi6ogZGWfBkWDpUMKqNTfYX39
VRbr3nbdhJSquvLYyayGwKmpi5zXQYRmobkgpBaYwGoIezyhASoa6tQMrBUsUXs8NYElbY8nABZh
Y8wC72MfLqgaEQALHQBsWWtL2zo0d8MHOQfcUNSlgIXmFAAEPVlQpRGFVHVuiFOrfa322OmMnJ6s
WM2KZQv43eNjGa/jQTCzEKYDWEeeFF5O4kiIuGG6htAEfmbWgnaHvhGheNHAcokAkPHexYniuwlY
cC9oEnk4znnXKxQvGlhqU+Tga3HKpYCFsH18GjEoXaJNeVpaUOp1dFM+gs9YmhuqdpOaUXkARgZL
VJnB947JYEH3h9iLDJa0SoN5bggzZ+fL09lv1gcdiMws7xZntkku0VCkCE78dDXXwcJBBunhzbf1
dAcHFsj8yQ5xzNJv39u2taAkObzb1eKpohf41jXiGEQr0Rxvr4CopjUCwwV9nPVsIly8effXauVa
74beLWBXFbrXtHdkPEAv8KHGQzoN29GiDkgDDoZMcQ9TXBuVFWoZMstHN/andlx7TZgFESnol4oX
+1M75mBB4eHLT4nFeBNmhUq+hKiiVs2CPpET7aWQQkK5GQuW5JTQ86TE3JBxLFoHy+TlYpklts1I
n0gHYYc2o0uvipL3wQATrMC78JUON3U6cKZpb6vEIhcNrBhHl5DxYDVLq4cSMp7EwNKiyWBAYmAt
nuNhLmTmmgUpTj5ri2rzVsECXuhrCQIx8gSEwCzJMLl4+cAKJxfU2u8eTkzd0qv0PgiW/j9BtTve
GyvmhmWV20PfaJAvizgFlrXn34r19JDgXGJPoWAEPm5xlLlvSFgNhSeGhlthQdQkJIYEsFZmSvWZ
mAuabdivAFiB/1uo9ClHQca+cRILljaSlNA4WavAy/lqFIJmRTFrtqDlHJ8BWDdctSLc5sHRIiRD
fPCItQQL1p85a8f6ShKklrGeTugLOzzQxIIF1nYufYEF/PzmVKZ3a2ku6PrBjcwLpIh0J5jtKL+R
2foQzaygbym/kaNTqoAQ3FCd9uiTFJ1KACw4Wd5ye559fuNblwyZBXeB5Jl9fpMYWBLyGx9YtHQH
zu5Mns/wCJoMrKC5IdRhQKqGP0sJ2Wt1Q5Cq+x8kLoWGifTRzVJCdh+z/gFgMSDBwbFwgwAAAABJ
RU5ErkJggg==
    </encoded-image>
  </background-picture>
</cell>

Okay, these are a few tips and tricks you can use to make crazy, customized .jpz files. Is it easy? No. But I think the end result can be worth it if you have some sort of insane puzzle you want to share with the world. Happy puzzling!

Leave a Reply

Required fields are marked *.


This site uses Akismet to reduce spam. Learn how your comment data is processed.