Quickly Solving Jigidi Puzzles

tl;dr? Just want instructions on how to solve Jigidi puzzles really fast with the help of your browser’s dev tools? Skip to that bit.

I don’t enjoy jigsaw puzzles

I enjoy geocaching. I don’t enjoy jigsaw puzzles. So mystery caches that require you to solve an online jigsaw puzzle in order to get the coordinates really don’t do it for me. When I’m geocaching I want to be outdoors exploring, not sitting at my computer gradually dragging pixels around!

A completed 1000-piece "Where's Wally?" jigsaw.
Don’t let anybody use my completion of this 1000-piece jigsaw puzzle over New Year as evidence that I’m lying and actually like jigsaws.

Many of these mystery caches use Jigidi to host these jigsaw puzzles. An earlier version of Jigidi was auto-solvable with a userscript, but the service has continued to be developed and evolve and the current version works quite hard to make it hard for simple scripts to solve. For example, it uses a WebSocket connection to telegraph back to the server how pieces are moved around and connected to one another and the server only releases the secret “you’ve solved it” message after it detects that the pieces have been arranged in the appropriate relative configuration.

A nine-piece jigsaw puzzle with the pieces numbered 1 through 9; only the ninth piece is detached.
I made a simple Jigidi puzzle for demonstration purposes. Do you think you can manage a nine-piece jigsaw?

If there’s one thing I enjoy more than jigsaw puzzles – and as previously established there are about a billion things I enjoy more than jigsaw puzzles – it’s reverse-engineering a computer system to exploit its weaknesses. So I took a dive into Jigidi’s client-side source code. Here’s what it does:

  1. Get from the server the completed image and the dimensions (number of pieces).
  2. Cut the image up into the appropriate number of pieces.
  3. Shuffle the pieces.
  4. Establish a WebSocket connection to keep the server up-to-date with the relative position of the pieces.
  5. Start the game: the player can drag-and-drop pieces and if two adjacent pieces can be connected they lock together. Both pieces have to be mostly-visible (not buried under other pieces), presumably to prevent players from just making a stack and then holding a piece against each edge of it to “fish” for its adjacent partners.
Javascirpt code where the truthiness of this.j affects whether or not the pieces are shuffled.
I spent some time tracing call stacks to find this line… only to discover that it’s one of only four lines to actually contain the word “shuffle” and I could have just searched for it…

Looking at that process, there’s an obvious weak point – the shuffling (point 3) happens client-side, and before the WebSocket sync begins. We could override the shuffling function to lay the pieces out in a grid, but we’d still have to click each of them in turn to trigger the connection. Or we could skip the shuffling entirely and just leave the pieces in their default positions.

An unshuffled stack of pieces from the nine-piece jigsaw. Piece number nine is on top of the stack.
An unshuffled jigsaw appears as a stack, as if each piece from left to right and then top to bottom were placed one at a time into a pile.

And what are the default positions? It’s a stack with the bottom-right jigsaw piece on the top, the piece to the left of it below it, then the piece to the left of that and son on through the first row… then the rightmost piece from the second-to-bottom row, then the piece to the left of that, and so on.

That’s… a pretty convenient order if you want to solve a jigsaw. All you have to do is drag the top piece to the right to join it to the piece below that. Then move those two to the right to join to the piece below them. And so on through the bottom row before moving back – like a typewriter’s carriage return – to collect the second-to-bottom row and so on.

How can I do this?

If you’d like to cheat at Jigidi jigsaws, this approach works as of the time of writing. I used Firefox, but the same basic approach should work with virtually any modern desktop web browser.

  1. Go to a Jigidi jigsaw in your web browser.
  2. Pop up your browser’s developer tools (F12, usually) and switch to the Debugger tab. Open the file game/js/release.js and uncompress it by pressing the {} button, if necessary.
  3. Find the line where the code considers shuffling; right now for me it’s like 3671 and looks like this:
    return this.j ? (V.info('board-data-bytes already exists, no need to send SHUFFLE'), Promise.resolve(this.j)) : new Promise(function (d, e) {

    Javascirpt code where the truthiness of this.j affects whether or not the pieces are shuffled.
    I spent some time tracing call stacks to find this line… only to discover that it’s one of only four lines to actually contain the word “shuffle” and I could have just searched for it…
  4. Set a breakpoint on that line by clicking its line number.
  5. Restart the puzzle by clicking the restart button to the right of the timer. The puzzle will reload but then stop with a “Paused on breakpoint” message. At this point the application is considering whether or not to shuffle the pieces, which normally depends on whether you’ve started the puzzle for the first time or you’re continuing a saved puzzle from where you left off.
    Paused on breakpoint dialog with play button.
  6. In the developer tools, switch to the Console tab.
  7. Type: this.j = true (this ensures that the ternary operation we set the breakpoint on will resolve to the true condition, i.e. not shuffle the pieces).
    this.j = true
  8. Press the play button to continue running the code from the breakpoint. You can now close the developer tools if you like.
  9. Solve the puzzle as described/shown above, by moving the top piece on the stack slightly to the right, repeatedly, and then down and left at the end of each full row.
    Jigsaw being solved by moving down-and-right.

Update 2021-09-22: Abraxas observes that Jigidi have changed their code, possibly in response to this shortcut. Unfortunately for them, while they continue to perform shuffling on the client-side they’ll always be vulnerable to this kind of simple exploit. Their new code seems to be named not release.js but given a version number; right now it’s 14.3.1977. You can still expand it in the same way, and find the shuffling code: right now for me this starts on line 1129:

Put a breakpoint on line 1129. This code gets called twice, so the first time the breakpoint gets hit just hit continue and play on until the second time. The second time it gets hit, move the breakpoint to line 1130 and press continue. Then use the console to enter the code d = a.G and continue. Only one piece of jigsaw will be shuffled; the rest will be arranged in a neat stack like before (I’m sure you can work out where the one piece goes when you get to it).

149 replies to Quickly Solving Jigidi Puzzles

  1. You hate jigsaws in the same way you hate popcorn. If either is present you consume them voraciously whilst complaining about them constantly.

  2. This is working when you are logged in to jigidi. But when you are not logged in there is no such part in code. Thats because jigidi does have different script version in use when you are logged in or not.

    • That’s presumably because it doesn’t need to check if you have saved progress if you’re not logged in. A different but related approach could still be made to work, though, I’m sure.

      • Oh, that’s true. I didn’t realize that there is no need to check that thing when you are not logged in.

  3. I found your explanation pretty pretty useful in order to “solve” some jigsaw puzzle caches. Only a few days ago it was working perfectly for me, but today I cannot find the release.js file in the debugger any more, even after logging out and in again to Jigidi and reloading the puzzle several times. Therefore I also was not able to set a breakpoint correctly and skip shuffling.
    Did Jigidi again change their code? Or am I just to blind to find the right line?

    • You’re right, Abraxas: they’ve changed their code. They’re still doing the shuffling client-side though so it remains trivial to bypass it: I’ve updated my instructions above with a new section at the bottom.

      • It looks like they have changed the code again. I cannot find the line.
        I tried to find another line, but don’t know exactly how.

  4. Keep up the good work dude, as a geocacher I love mysteries, Some of my mysteries took weeks of brainstorming and creating them. It’s a bit easy to take an 100 images from the internet put them on jigidi and make a mystery geoart. Solving mysteries is about using tools, just like we use geocachingtoolbox, for me the challenge in those puzzeltrails is to find a solution to be smarter than the geocache creator. I found your website, and I still don’t understand how it works but i’ll try to find it out. Geocachers should create original mysteries from scratch where the clue is only in the head of the creator and not that method that is used over 1000 times before….

  5. Jigidi changed his code again. The tutorial is out of date and I can no longer find the break point. For example, a 400 piece puzzle does not have 1000 lines of code. Can you check it again, please? Thanks!

  6. Works perfectly for me! Thank you so much. I can now spend my time trying to solve the actual cryptic puzzles, not the jigsaws.

    • It would be great if you could explain how this worked for you after the last change. As Frederick wrote, the code was changed again. I tested it extensively two days ago and couldn’t find the line where the break should be set!

  7. How did it work for you? The code is no longer as described. Need more detail to understand its workings.

  8. Is there a way to get access to each piece’s image? I’m trying to do something with AI to solve the puzzle. It would be nice to get the (x,y) location on the screen and the image of the piece. I’m not sure where they are kept.

    • I was thinking about this and you wouldn’t even need AI, just some good image processing code. There’s a preview of the finished image in the corner, and you can determine the number of rows and columns (it’s a simple columnar jigsaw): only the holes and bumps vary. So if you can set the zoom of the main jigsaw space to match the preview size you could just do some kind of image matching to work out with good confidence exactly where each piece lives, for most jigsaws.

      I’ve got no recent experience in image visualisation code and don’t have time to learn, but somebody might be able to do this. No AI required!

      • Yup. I was using AI as a blanket term. I don’t know JS too well. I was thinking of using python/pyautogui/opencv to do it. Opencv has a pattern matching tool that would work well. Pyautogui let’s you take screenshots and simulate the mouse.

        It would be useful to be able to find a pieces position on the screen. Is the array of piece object kept client-side?

    • Hi Tron2015,
      would you please explain what and how “it” works like a charm? That would be very important to all observers …
      Best regards

      • First things first, jigidi changed the code. Breakpoints are now 1123 and 1124, variable has changed from a.G to a.C

        Works like a charm… means, follow Dan Q’s instructions.
        Start with 1 and 2 under “How can I do this”. Step 3 has changed to 1123. Set the breakpoint. Hit “refresh” in the Jigidi. Code will run to the breakpoint 1123. Hit the run symbol in the debugger (small triangle on the right upper side). Code will run to the same breakpoint again. Click on the breakpoint 1123. Blue mark will disappear. Set a breakpoint at 1124. Hit run in the debugger again. Code will run to breakpoint 1124.
        In the left lower corner of the debugger you see >>.
        (everything as described by Dan Q step 4, 5 and the update 2021-09-22)
        Enter d = a.C and hit return. Press play in the debugger again. Code runs to the end, all the puzzle piece are stapled. Hit F12 to close the debugger.
        Take a look at the video from Dan Q, it will explain what you have to do with the stapled pieces.

  9. First things first, jigidi changed the code. Breakpoints are now 1123 and 1124, variable has changed from a.G to a.C

    Works like a charm… means, follow Dan Q’s instructions.
    Start with 1 and 2 under “How can I do this”. Step 3 has changed to 1123. Set the breakpoint. Hit “refresh” in the Jigidi. Code will run to the breakpoint 1123. Hit the run symbol in the debugger (small triangle on the right upper side). Code will run to the same breakpoint again. Click on the breakpoint 1123. Blue mark will disappear. Set a breakpoint at 1124. Hit run in the debugger again. Code will run to breakpoint 1124.
    In the left lower corner of the debugger you see >>.
    (everything as described by Dan Q step 4, 5 and the update 2021-09-22)
    Enter d = a.C and hit return. Press play in the debugger again. Code runs to the end, all the puzzle piece are stapled. Hit F12 to close the debugger.
    Take a look at the video from Dan Q, it will explain what you have to do with the stapled pieces.

  10. You’re right, seems they didn’t change the code for every puzzle. I found a few where everything worked as the week before.
    Well, as long as there are only minor changes…

  11. It’s definitely line 1795 for the first two breakpoints and line 1796 for the third one.
    Variable changed von a.G to a.J or simply enter d=???, where ??? stands for the number of puzzle pieces
    Version of game/js is 15.3.2284

    • Thanks for that – I’ve looked in firefox and that is the correct row. I had been using chrome previously, and converting the code to a readable format has put that section on a different line.

      Your suggestion of 1795 and 1796 works for firefox, so I’m really grateful for your finding it

  12. 1252 in Chrome’s pretty printing, or just search for Aa(1610) in any browser (breakpoint goes on the line after that)

    • Can you give a more detailed instruction, especially for “Chrome’s pretty printing”.
      If I search for Aa(1610) or only Aa I cannot find the line.were to set the breakpiont.
      “Set breakpoint” means only “clicking its line number”, is that right ?

  13. For the “pretty printing” you only must click {} in the bottom under the window.
    In the moment it is 1252, because in a new version the line code could be different.

    “Set breakpoint” means only “clicking its line number”, is that right ?” Yes, that’s right.

  14. New to trying this method as I have really grown bored of wasting 4/5 hours of my life.

    Been trying to follow and understand everything so I can get the stacking pieces but always seem to get the message The jigsaw could not be restarted.

    I think I have the right process find the breakpoint which seems to be 1795 refresh the jigsaw then in console put d=a.J or d= number of puzzle pieces. Run the process again but it either comes up with the message above, stays at pause or other times the puzzle restarts with the random placement of pieces. Should I be selecting line 1795 and 1796 to pause are there more and is the console section always d= or does that change.

    Is there anything I’m doing wrong I have never even known about the developer tools debugger options before so this is the first time I have ever tried anything like this and barring there being a solver like there was this seems like a good way for me to still do these annoying jigidi puzzles.

    Sorry if i’m being really thick but I really don’t understand this side of things but hope to learn it at a simple form to do these puzzles.

    • Make sure you are following Tron2015’s post from 19 December, the step by step process they provided works for me. Up to that point I wasn’t managing to get it to work, but I wasn’t following the instructions properly, the way it has been laid out there was really clear.

  15. WB… for the Java Code 15.3.2284 gives in the Moment follow solution:

    1. Open the Puzzle
    2. Press F12(or search in your Browser for Developer Mode)
    3. Go to the Source Tab
    4. On the left side you See “Folders” and click on game-js-15.3.2284
    5. At the end of the Source Window click on “{}” (means “pretty printing” )
    6. Go to Line 1252 and click on this Number to Set the Brakepoint
    7. On the Puzzle side Press on Reload on the right side of the timer
    8. In the upper side you can See now a blue Button with yellow background.
    Now you Press one time on it.
    9. Go again to the Line Number 1252 in the Source Window and click again on the Number to deactivate the Brakpoint.
    10. Click now on the next Line Number(1253) to Set the Next Brakepoint
    11. Now click on the left Puzzle side again on the blue Arrow ONE TIME!
    12. Open the Tab Console and write exacly
    without quotes “d = a.G” and Press Enter.
    Now you can See in the Console similar:
    ƒ (a){this.I&&!a||pb(this);return this.I}
    When not, press Enter again.
    13. At least you must Press on the left side on the blue Arrow again.
    Final you must See a stapled Puzzle.

  16. Hello

    I tried the 13 steps to crack puzzle but it’s not working.

    Could you try again with this puzzle and let me knowhttps://www.jigidi.com/solve/pgj4hcuc/epp-poshrule/

    Thanks in advance

    Kind regards

    Didier

  17. The script has now version 15.3.2248 the needed startline is 1795. The input in the Tab Console change to “d = a.J”

    1794 a.log.debug(Aa(1610) + a.X + Aa(4625) + a.time);
    1795 for (var d = c = 0; d < a.J; ++d) { 1796 for (var e = Ma(b), f = Ma(b), g = null, h = Ma(b), k = 0; k < h; ++k) { 1797 var l = J(b);

    • Hi Didier,

      I’ve been working on an alternative “solver” for these puzzles that works in a different way. It’s not ready to share yet, but I used the puzzle you just suggested as a testbed, if you’re interested:

      Didier's partially solved Jigidi #1

      Didier's partially solved Jigidi #2

      Didier's solved Jigidi

      Apparently the password you need is “Dominos”.

      In anticipation that I’m about to receive a barrage of requests to solve everybody else’s puzzles and post images, like this: No, I’m not going to do that. I’m very busy. But I will try to put some time into improving solver tools in general as and when I can.

      • For the technical-minded who are following along: part of my solution involves injecting an ES6 Proxy to override the HTMLImageElement component with one which I control, and then using that to replace the content of the jigsaw image with a known image in which the rows and columns (that will eventually become jigsaw “pieces”) are individually labelled with their coordinates. This makes it possible to solve moderately rapidly as a human even if the computer-aided tools don’t work… and because it runs entirely “on top” of the site, it doesn’t depend on any particular version of Jigidi’s code.

        • Hello Dan

          I understand that you are working on a new solution but not shared yet.

          Could you share your solution even if I must apply break point and modify few data values.

          If you explain me the process, I will be able to reproduce it and solve huge puzzles like this onehttps://www.jigidi.com/solve/x07iovi0/chercher-une-aiguille-dans-une-botte-de-foin/

          Thanks in advance

          Kind regards

          Didier

          • Hi Dan

            I used your process and that is manual but working.

            Let me know when you will have new version.

            Thanks and enjoy your WE.

            Didier

      • Hi Dan,

        If you need any beta testers out in the wild, please do let me know – Would be happy to try and set this up locally for testing.

    • Félicitations !
      Voici la position de Phil, il n’attend plus que votre passage :
      N 47° 33.010 E 001° 16.540
      Bonne découverte !

    • Hi Didier,

      I’m a relative novice to solving Jigidis using the manual methods. To test whether I can still do it with the site updating frequently, I solved your puzzle.

      Félicitations !
      Voici la position de Phil, il n’attend plus que votre passage :
      N 47° 33.010 E 001° 16.540
      Bonne découverte !

  18. Thanks so much for posting this – you’ve saved me probably hundreds of hours of puzzle solving, to work through some Jigidi-heavy series!

    Currently working for me on Chrome. Jigidi version 15.3.2248.a

    Breaks on lines 1252 and 1253

    d = a.J

  19. Anyone noticing the code has changed again

    The “game” section of the code is now suffixed by “/16” and the only js file is a string of numbers and letters.

    I’ve not had any joy yet locating where the breakpoints need to be placed.

    • If you are still looking the breakpoint lines seem to move from puzzle to puzzle do not know if this is based on number of pcs or just what. I search for word debug then click line that has the word time in it. The next 2 lines under that line are your breakpoints. Also the formula is D=j.I Have tested this on a couple of puzzles seems to work.

    • Have not been able to make this work for a while now. the code has changed again, and I do not know enough about how this works to even try and work it out.

  20. Hi dmlookhere

    Could you tell me what is the line number to put break point and and then apply D=J ?

    Thanks in advance

    Didier

    • Sorry I did not back sooner Work got in my way. However it appears Jigidi has changed things up again. I’m not having much luck this time around. The answer to your question was they had put something in that changed the location each time of that line.
      Thanks
      dmlookhere

  21. I still manage to solve the puzzles using the strategy here. You just need to find the correct place to set the breakpoint.

    At the moment I search for the following to find the nested for-loops in the js file (https://www.jigidi.com/game/17/js/)
    Search for:
    for (var D = 0, y = 0; I > y; ++y)
    and then set this in console:
    y = I

    • Hmm. They are getting devious. For me they now they changed the line to:
      for (var D = 0, y = 0; y y” -> “y < I" So maybe better to search for : for (var D = 0

      • It now just looks like a style sheet and I cannot find code anywhere. Have they changed the shuffle to server side?

        • Seems like Chrome will not ask to pretty print the file automatically.
          When you open the the file in (https://www.jigidi.com/game/17/js) – Not css.
          I have to manually click button with label “{}” below the content.
          Then search for “for (var D = 0, y =” still works for me.

      • Great job, Atle.
        your advice from 5 March worked perfectly!
        Breakpoints in Win10/Firefox were at 16231/16232, although I think they have a quite dynmic code right now.
        Keep up the good work

    • I am trying what you mention here, but without success. The breakpoint gets called twice when I reload the puzzle, then it just pops up like it normally would. I have zero knowledge about js, so hopefully there is a workaround? 😦

      • Either you have breakpoint in wrong place (many places with for-loops) or do not set “y = I” in the console at the right time?

        • I guess I don’t have the knowledge to find the correct piece of code then. I see that the code changes from time to time. Is there a specific line still being used, or a certain area in the code where I have to find the line where I have to set the break point?

    • They keep changing it up.
      Now it was X and not y in for loop:
      for (var D = 0, X = 0; X < d; ++X)
      and do X = d in console.

      • And then all new letters:
        for (var J = 1 – 1, v = 0; T > v; ++v) {

        It still works…but this makes it harder for everyone to find correct place.

        • Thanks so much Atle! I followed the directions and it worked like a charm. I had to use Google instead of Firefox to pretty print the file. It seems that they went back to for (var D = 0, y = 0; …

        • Thanks so much. It worked great. I couldn’t find how to pretty print the file in Firefox, so I did it in Chrome.

  22. I still cannot find the right piece of code, probably because the code is dynamic..

    Is there any specific part in the code, or a specific function, where this piece can always be found no matter what? That would sure help me as I know nothing about js code :)

  23. I’ve noticed that they are somehow identifying when this method is used now. When the puzzle completes, you no longer get the success message – ouch! I’m guessing that they keep track of what percentage of the pieces are put together in this linear order. I’ve verified it even with this small puzzle to test. I tried a real one and even mixing up a handful of pieces and waiting a reasonable time to complete it didn’t give me success message (but I get one fine if i do it by hand). https://www.jigidi.com/jigsaw-puzzle/sd32gq5t/easy-9-piece-geocaching-test-puzzle-with-completion-message/

    • You’re right, that happened on 12 March. I tried to do a part of the puzzle with the debugger logged in, then use a VPN and use another browser continuing with the account, it didn’t work. It doesn’t seem to be time-based.
      “Percentage of pieces in a linear order” seems to be a good guess.
      We’ll see…

  24. The guess was a good one. I puzzled 2 pieces at a time and stacked them. When last pair of row was done I connected all the pairs into a complete row.
    I also stacked rows and connected them when I felt like it.
    Took a while longer to complete but at the end I got the success message.
    Tried to add link to image of my puzzle halfway into completion to better illustrate, but seems chat do not allow links to google drive. Hope you all still understand the steps I took.

  25. Hi Atle

    Could you try this puzzle and let me know if your workaround is working to obtain messagehttps://www.jigidi.com/solve/0r2gepbm/01-geo-hound/
    Also this onehttps://www.jigidi.com/solve/7f4q1j8e/the-ultimate-end-geocoin-side-a/

    Thanks in advance

  26. There was a change in the night, to obtain a message you have to be logged in with an account.
    That change has nothing to do with the debugger, seems that you must be logged in to get a message anyway.

    • They were having server problems. Logged-in, I manually completed one that didn’t show the message but re-visiting the jigsaw from within my account then showed the mesaage ok. Apparently they have now fixed the bug and can get back to putting their efforts towards annoying us!!

  27. I could no longer find the right way or variable to put the pieces to stack. Have they changed the code to prevent this completely.

  28. It*s still folder “game/17/js” with the “un-pretty-printed” file containing the js-code.
    As usual in the last weeks the variable names change quite often

    • Oh, that was very helpful. Thanks a lot.

      I know quite well where the actual script is, but I can’t find the right place in the script. That’s why I asked for a variable in the script.

      • This is something that I was not expecting. I found right variable but I don’t get no more messages. I have tried multiple ways but it seems that messages is not coming. There will be no message whether you are logged in or not.

        • Jigidi completion messages might be broken currently (and if it works for you, it doesn’t imply it works for all).

    • @Tron2015 – any chance you can give the current expression to search for plus what to enter in Console? I can’t get any of the previous to work. Thanks.

  29. I also noticed that this method still works to solve the jigidi quickly, but the completion message does not appear anymore.

  30. It is not the completion message itself that does not work as a simple test jigidi with completion message still works like expected if solved the normal way. It certainly detects something.

  31. @rich: sure
    I used this one a few seconds ago:https://www.jigidi.com/solve/7f4q1j8e/the-ultimate-end-geocoin-side-a/
    Breakpoint s were at 16794/16795, variable was f and I, console command would be f = I or f = 40

    @name: that*s no use, variable names and line numbers for breakpoints change dynamically. You have to look for the double “for….” construction as described in the “Update 2021-09-22”. It’s not possible anymore to tell which variable or line as they change all the time.

    @Aleph: you have to do exactly what @Didier wrote at 21 March, 2022 at 20:21

  32. @Aleph: of course Atle described the correct method first. Sorry
    Take a look at @Atle says: 19 March, 2022 at 10:38

  33. @Dan Q

    Hi Dan

    Do you know if there is a tool able to save trace of HTML executed ?

    Thanks in advance

    Didier

    • I was able to do it, but can’t find the code anymore. Can someone help me by telling how the shuffling code looks like today?

      1. What lines are we looking for in the code and what did you ctrl + f.

      2. What did you put in the console?

      Many thanks!

  34. 18:57
    same puzzle
    lines 18232/18233:
    for (var z = 0, f = 2 – 2; Y > f; ++f) {
    console in this case: f = 9 or f = Y

    (sorry, there was something mixed up in the post, but I’m sure you see what I wanted to show you)

  35. 18:57
    https://www.jigidi.com/solve/sd32gq5t/easy-9-piece-geocaching-test-puzzle-with-completion-message/
    lines 18232/18233:
    for (var z = 0, f = 2 – 2; Y > f; ++f) {
    console in this case: f = 9 or f = Y

    19:55
    same puzzle
    lines 20911/20912
    for (var h = 0, x = 0; x < B; ++x) {
    console in this case: x = 9 or x = B

    As you can see, it's no use to look for breakpoints, line numbers, variable names as they change within minutes.
    The only thing is to search for the double for statement as described in former posts.

  36. Yesterday 18:57
    https://www.jigidi.com/solve/sd32gq5t/easy-9-piece-geocaching-test-puzzle-with-completion-message/
    lines 18232/18233:
    for (var z = 0, f = 2 – 2; Y > f; ++f) {
    console in this case: f = 9 or f = Y

    Yesterday 19:55
    same puzzle
    lines 20911/20912
    for (var h = 0, x = 0; x < B; ++x) {
    console in this case: x = 9 or x = B

    As you can see, it's no use anymore to look for breakpoints, line numbers, variable names as they change within minutes.
    The only way is to search for the double for-statement as described in former posts.

  37. simple rule for finding the necessary lines:

    do a regular search for

    function.*\n *for.*\n *for.*\n *var

    and use the variable in the first for loop behind the ++ in the console…

  38. Hi
    I get to folder game/17/js and open a file in it, but I can see only one line of text and no “{}” option. Do you know what I did wrongly? Do you know how could I enter proper file know?

  39. is there any way you can make this more “for dummies” accessible.
    no idea what to search for, as the code itself has no identifiers or comments
    further, the location is randomized. are the variables randomized too?

  40. Hi all,
    Let me quote this
    ———–
    How can I do this?
    […]
    Go to a Jigidi jigsaw in your web browser.
    Pop up your browser’s developer tools (F12, usually) and switch to the Debugger tab. Open the file game/js/release.js and uncompress it by pressing the {} button, if necessary.
    […]
    Update 2021-09-22:
    […]
    Their new code seems to be named not release.js but given a version number; right now it’s 14.3.1977
    ———–

    Unfortunately I can’t find the required file (14.3.1977 ??) to open.
    What i see is a folder named: game/17/js
    I opened this random puzzle in firefox: https://www.jigidi.com/jigsaw-puzzle/q3s2xlrt/very-amy/
    May I get some up-to-date info how to or where to set the needed break-point?

    thanks a lot

  41. May I get some enlightment where to find the code and the line number to put a break-point in? In my firefox in debugger/sources I can see ‘game/17/js’
    So i guess the infos at the top of this threat aren’t up-to-date anymore…?

    thanks in advanced

    • @DanD
      Your reply from 6 May, 2022 at 12:24: Code changed in February 2022, see @morecanbegeek 20 February 13:32

      Your reply from 6 May, 2022 at 12:59:
      You’re right, that’s the folder. Take a look at the following posts, they are still actual and working:
      – @atle 05 March 10:11
      – @atle 19 March 10:38
      – @Tron2015 30 March 16:12
      – @Herr Ma 16 April 19:07

      • In the folder ‘game/17/js’ all the code is on one line only.
        Is there a way to indent it?

        BTW, I tried to search with the regular expression ‘function.*for.*for.*var’ as suggested in some posts above but cannot find anything.

        • Your browser will probably have a button to “pretty-print” the JavaScript code: it probably looks like a pair of curly braces i.e.: {}

  42. I don’t have/can’t find these curly brackets in Firefox. They are only in Chrome. In Chrome I don’t know how the search can run the regex string. Still, I always find the right place by searching manually.

    Doing a 500+ piece puzzle in about 25-30 minutes is better than nothing. It’s still annoying though

    • I use Firefox as my primary browser. Indeed, all my screenshots above were taken in Firefox (look at the icons on the Inspector and Console tabs, for example).

      The “pretty print” button is here:

      Screenshot showing Firefox's 'JavaScript Pretty Print' button below the Debugger code display

    • I’ve tried multiple times. Finally according to the method described by Atle from 19 March, 2022. I only put two pieces together at a time and later then I connected these pairs to form the whole puzzle. However, I have not received any completion message.

      Btw, in Firefox developer mode I can’t format the javascript. The curly brackets for pretty print are missing here. So I use the developer mode in Google Chrome.

      Even the regex search doesn’t work (neither in Firefox nor in Chrome). Here I help myself with the website regex101. There I paste the copied source text and then I find the double for loop via the regex search.

      Has anyone tried to build a solution using Microsoft Power Automate Desktop?

      • Regarding the curly brackets and the regex search: I have the same situation here. Maybe someone in this thread can show (with pictures?!) how these brackets can be enabled in Firefox. Also how the regex search “should” work.. in the dev tools

        I do solve the puzzles by connecting not all 2-pairs in a line. I connect two 2-pairs in one line, then two 2-pairs in the next line and the next two 2-pairs in 3rd line and so on. I do repeat this over all lines and then start again until I have to connect bigger pieces. This worked all the time.

        @Raas-Algul: No. This thread is definitely not to post a puzzle and retrieve the final coordinates. I just guess that the answers with coordinates came from people with to much time.

        @Tritop99: Microsoft Power Automate Desktop can be worth a try but it would be a poor solution. The best solution would be to hijack the java code.

    • Super! Ihr habt es fast geschafft.

      Jetzt ab zum GZ:
      N53 34.721 E10 06.165

      Parken könnt ihr bei:
      N53 34.731 E10 06.161

      Happy Hunting. Favo’s sind gerne gesehen;)

  43. Hello my name is Marcus. I have followed your comments and explanations carefully. I can’t get any further than calling the debugger. I see the window with the folders on the left. I also see the folder game/17/js. When I select this folder, I then activate the style mode Pretty Printing and see various packages. But if I search in the packages for a FOR statement, I find nothing. I have the feeling that I am in the wrong source code. I tried all this with the geocache GC9M4NJ / https://www.jigidi.com/solve/u2zvzyty/der-monch-naturschutzgebiet-des-roque-nublo-gran-canaria/.

    Can you help me further?

    Thanks for your help!!!

    Marcus

  44. A few minutes later the package name had changed, location in the structure was the same.

    The FOR-statements were at 17340/17341, but that will change within minutes.

    You usually find the FOR-statement between 16000 and 21000.
    Use the search with regular expressions described at @Herr Ma 16 April 19:07

Leave a Reply

Your email address will not be published.