JSoko Changelog

What's new in JSoko 1.86

Aug 5, 2019
  • The "go through boxes" feature introduced in version 1.84 is now only active for boards having a size lower than 2000 squares because the calculation takes a long time on huge boards.
  • Ctrl + z now performs the "undo move" operation instead of "undo all moves".

New in JSoko 1.83 (Feb 26, 2019)

  • Optimizer: The optimizer methods moves/pushes and pushes/moves now also leverage all available RAM and all CPU cores. They are slightly faster than the methods that also optimize the secondary metrics. If you are only interested in solutions having the best moves and pushes than the moves/pushes and pushes/moves methods are therefore the primary choice for optimizing.
  • Optimizer: if a pushes range of the solution is optimized (instead of the whole solution) the displayed "depth" in the search is now calculated differently:
  • if for instance the pushes range is: from push 100 to push 300 of the solution,
  • then the depth starts with 100 until depth 300 is reached.
  • This way it's easier to see in which pushes range the optimizer finds new improvements.
  • The maximum board size is 100 rows/columns.
  • Expert users can set another value in the settings.ini
  • Note that the default settings.ini is copied to the user folder at program start. In order to change the value the settings.ini file in the user folder has to be changed (For Windows this is: %appdata%jsoko).
  • Setting "Show minimum solution length": the calculated lowerbound for the solution length is now immediately shown after selecting a solution.

New in JSoko 1.78 (Jul 25, 2017)

  • bug fix: the optimizer has run in an endless loop in certain situations. Thanks to findus for reporting this bug.
  • bug fix: the optimizer couldn't optimize levels that have all boxes on goals. Thanks to findus for reporting this bug.
  • optimizer: the optimizer offers a new optimization method, optimizing for box lines then pushes
  • bugfix: some skn-skins couldn't be loaded anymore. Thanks for tripleb for reporting this bug

New in JSoko 1.76 (Dec 12, 2016)

  • bug fix: the translator tool hasn't created a new language file when "add language file" has been pressed on Windows OS
  • translations: thanks to Åke Engelbrektson for his Swedish translation
  • translations: thanks to Paul Voyer for his French translation
  • translations: thanks to Giorgos Kostopoulos for this Greek translation
  • optimizer: the optimizer now supports 4 boxes for generating box configurations to be optimized

New in JSoko 1.75 (Sep 26, 2016)

  • bug fix: in levels containing a goal room the tunnel logic has been using the wrong box. This could result in unnecessary long solutions.
  • bug fix: the last moves history hasn't been correctly set when a level has been loaded again in some cases.
  • JSoko now uses UTF-8 as standard encoding for reading files.
  • When the level editor is active, the "close window" action now closes the editor instead of the whole JSoko application.
  • A new skin from Scott Lindhurst can be used. Thanks to Scott Lindhurst for this skin

New in JSoko 1.74 (Apr 23, 2015)

  • bug fix: entering the editor and leaving the editor again without changing the level results in internal crashes of the program. In this case please switch the level up and down one time so the current level is loaded again.
  • database: the collections of the database and the last 5 played collections are displayed in a list in the main GUI for quicker access. The key "c" opens the list of the collections, the key "l" the levels list.
  • JSoko is published using install4j installer for Windows. Therefore all user data are saved in the default user directories ("user home").
  • Translator: the language texts can be exported to a file to share them.
  • The size and position of the optimizer GUI is saved to the settings file and restored from there when the GUI is opened again.
  • Levels that aren't loaded from the database (but from hard disk or clipboard) are automatically saved in a new collection "unregistered". Every time a level is loaded JSoko checks whether a similar level (comparing the level elements: walls, boxes, goals, ...) is already stored in the "unregistered" collection. If this is the case, the solutions of the stored level in the database are added to the loaded level and the level is connected with the one in the database. This means adding new solutions or deleting solutions from the loaded level also adds the solutions to / removes the solutions from the level in the database. Nevertheless, it's recommended to import all levels to the database manually (menu: Database->Import collection to database). This way the levels are stored for a collection having a specific name.

New in JSoko 1.73 (Jan 28, 2014)

  • Bug fix: in some cases the pushes/moves and the moves/pushes solver couldn't find he optimal solution.

New in JSoko 1.72 (Nov 18, 2013)

  • bug fix: the solver couldn't solve some levels like Thinking Rabbit Original No 10
  • JSoko better supports Mac OS
  • The new JSoko icon is used in the program
  • It's possible to save a whole collection of levels in one file
  • Support of "interior empty rows": a level now can contain empty lines. These empty lines must only contain spaces except the first character which must be a "-".

New in JSoko 1.71 (Oct 4, 2013)

  • Improved Chinese translation. Thanks to Anian Wu for this update.
  • bug fix: Clicking at "Info -> about JSoko" caused an "out of memory" error.
  • optimizer: there is a new optimizing method that optimizes for:
  • 1. moves
  • 2. pushes
  • 3. box lines
  • 4. box changes
  • 5. pushing sessions

New in JSoko 1.70 (Oct 1, 2013)

  • bug fix: huge levels sometimes have been considered as unsolvable
  • bug fix: Chinese translation caused an exception in the program. Thanks to anian for reporting this.

New in JSoko 1.68 (May 2, 2013)

  • new skin by Jean-Pierre Martel
  • highlighting of reachable box positions can be set on / off
  • replay can be started using key "R"
  • redo and undo can be done using single steps
  • JSoko remembers the last played collection file and level number

New in JSoko 1.67 (Jan 21, 2013)

  • JSoko is compatibel with Java 6 again
  • quicker box configuration phase in optimizer when using more than one box for optimizing. Thanks to Brian Damgaard for his help.

New in JSoko 1.66 (Nov 14, 2012)

  • bugfix: exception when trying to load file which isn't there is now catched
  • new maximum level size is 70 * 70 squares
  • quicker box configuration phase in optimizer when using more than one box for optimizing

New in JSoko 1.64 (Jun 4, 2012)

  • bugfix: In the optimizer a solution stayed colored even after the optimizer has finished.
  • Double-clicking a "short cut" in the file chooser dialog now immediately loads the file.
  • Improved Dutch translation. Thanks to Joris Wit for this update.
  • bugfix: the closed diagonal deadlock detection crashed JSoko in some levels due to squares "outside" the board (example level: "Bruno Druille 80").
  • bugfix: some of the settings weren't saved anymore.
  • solutions GUI: solutions that are best moves and best pushes solutions are now displayed with a special character - default character: !