JSoko Changelog

What's new in JSoko 2.00

Jul 22, 2021
  • New sounds:
  • There are now sounds for having solved a level, resetting the level and for situations that can't be solved anymore.
  • Solutions list:
  • The key "F11" now works as a toggle for showing/hiding the solutions list.
  • When the solutions list is visible a small button is now visible to indicate that the list can be hidden by pressing the button. As before the list can also be hidden by clicking at the displayed level.
  • This new button makes it more visible that a click is needed to hide the list for users only playing with keys.
  • Optimizer: double click invertes marked area:
  • In the optimizer it's possible to select an area to be optimized with the mouse:
  • When dragging an area can be selected.
  • Holding down the ctrl-key while doing this deletes the markings in the selected area.
  • Dragging with the right mouse button also deletes the markings in the selected area.
  • In this version it's possible to double click at the background image of the displayed level to invert the markings.
  • This way it's easy to first select the left part of the level and then by double clicking selecting the right part of a level.
  • Status bar size:
  • The status bar at the bottom of the GUI now has the same size as the info bar at the top of the GUI.

New in JSoko 1.99 (Jul 22, 2021)

  • Bug fix: Database driver not found:
  • When JSoko 1.98 is started with: java -jar JSoko.jar the database driver couldn't be found.
  • This is fixes with this version.
  • Note: JSoko is intended to be started with the file: JSoko.exe
  • The file "Start_JSoko_Windows.bat" is just there for those who want to compile the sourcecode and then start the program and therefore can't use the installer of JSoko.

New in JSoko 1.98 (Jul 22, 2021)

  • New menu item: Show technial help info:
  • In the help menu there is a new checkbox for enabling the display of technical info that are:
  • 1. Maximal RAM JSoko can use
  • 2. Folder where the database is stored
  • 3. Folder where the settings are stored
  • 4. Folder JSoko has been started from
  • These info may help to in case of problems to reset all data JSoko has stored.
  • Optimizer:
  • When multiple solutions are optimized the optimizer will remove the old best solution after each iteration and add the new best found solution.
  • Bug fix: crash in huge levels:
  • In very huge levels the program internally crashed because the internal storage wasn't huge enough. This is fixed now.
  • Simpler pushes lowerbound calculation in huge levels:
  • To support levels bigger than 70x70 squares the pushes lowebound calculation is done with a simpler algorithm to avoid too long waiting times for the user. Howerver, the path finding still takes a lot of time for huge levels.

New in JSoko 1.97 (Jul 22, 2021)

  • Bug fix: the link to the Letslogic API key has been broken:
  • The Letslogic website has been updated which caused the link to the member preferences to be broken. This has been fixed.
  • Handling of ctrl+v:
  • Pressing ctrl+v now checks whether a solution or a level is to be pasted.
  • Previously the user had to select the correct GUI element first: either the solution list or the main GUI when pasting solutions/levels.
  • Select level combo box:
  • In the combo box for selecting a level (can be opened by pressing "l") the user can now:
  • - enter a number for searching the level with that number. For instance entering 4 and a space will search for the level having level number 4.
  • - enter a text for searching for the level having that title. For instance entering "*lock*" will search for the first level having the characters "lock" in the title.

New in JSoko 1.96 (Aug 23, 2020)

  • Bug fix: JSoko crashed when submitting solutions to Letslogic:
  • In case connecting to the database takes too long the program crashed when submitting solutions to Letslogic. This has been fixed now. Thanks to Bernhard H. for reporting that bug!

New in JSoko 1.95 (Aug 17, 2020)

  • New Feature: Submit multiple level sets to Letslogic
  • This new feature allows selecting multiple collections. All solutions of the levels of those collections are then submitted to Letslogic.
  • JSoko will save the best submitted solution values in the database. This way the next time only new better solutions are submitted.
  • New Feature: Maximum time for optimizer plugin
  • JSoko can be passed a maximum time for running the optimizer when started as a plugin (that is: called from Sokoban YASC).
  • JSoko will stop the optimizer after that time and return the best found solution so far to Sokoban YASC.
  • New skin: KSokoban skin by Anders Widell
  • New skins: Yoshi Classic and Yoshi New by Borgar Þorsteinsson

New in JSoko 1.76 (Jan 26, 2017)

  • 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 25, 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 (Mar 11, 2014)

  • bug fix: in some cases the pushes/moves and the moves/pushes solver couldn't find the optimal solution. Thanks to Alexey for reporting this bug.
  • bug fix database: the selection for levels without a collection assignment wasn't correct. This is fixed now. Thanks to Fred Minklei for reporting this bug.

New in JSoko 1.72 (Nov 29, 2013)

  • bug fix: the solver couldn't solve some levels like Thinking Rabbit Original No 10
  • JSoko uses the default "Look and Feel" on 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 (Sep 30, 2013)

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

New in JSoko 1.70 (Aug 1, 2013)

  • bug fix: huge levels sometimes have been considered as unsolvable
  • bug fix: Chinese translation caused an exception in the program.

New in JSoko 1.69 (Jul 5, 2013)

  • bug fix: dragging in the history slider didn't work
  • optimizer: it's possible to manually mark the area to be optimized. The area not marked is now displayed darker to indicate it's not optimized.
  • optimizer: there is a new optimizing method t
  • Optimizing for 5 metrics takes a lot more time than just optimizing pushes and moves. However, this new method can leverage all cores of a system and use more RAM as the other methods. Hence, on multi cores systems this method can be as fast as the pushes/moves optimizing method. The results of this methods are the same as of the normal pushes/moves method except that the found solutions are also optimized for box lines, box changes and pushing sessions.
  • optimizer: the number of CPUs to be used by the optimizer can be set by the user

New in JSoko 1.68 (Mar 29, 2013)

  • new skin by Jean-Pierre
  • 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 19, 2013)

  • JSoko is compatible 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 (Dec 10, 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
  • bugfix: sound has still been played while being disabled in the menu
  • bugfix: changing the animation speed while a solution is replayed is taken into account again
  • Optimizer: iteration mode and selected active area now stays as it is, even when optimizer is optimizing only a pushes range.
  • Optimizer: the deadlock detection now runs at most 3 second to ensure the resources of this computer aren't used too much.
  • Optimizer: the deadlock detection is automatically cancelled when the optimizer is started (no waiting for the deadlock detection having finished)

New in JSoko 1.65 (Jun 20, 2012)

  • bugfix: background image names weren't displayed translated
  • removed display of level title since it's already displayed in the combo box
  • new translation: Spanish translation by Moisés R. González Rodríguez

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"). Thanks to Heiner for reporting this bug.
  • 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: ! (thanks to Heiner for implementing this)

New in JSoko 1.61 (Feb 3, 2011)

  • bug fix: the user settings file hasn't always been saved in the directory the JSoko.jar is located in
  • bug fix: the start level collection must be named case sensitive to be loaded on some OS
  • bug fix: the graphical level browser crashed when just a few levels had been loaded
  • bug fix: the shortcut file wasn't always saved in the same folder as JSoko has been started

New in JSoko 1.60 (Sep 30, 2010)

  • clicking at a level in the graphical level browser now loads the selected level. This doesn't work in version 1.59

New in JSoko 1.59 (Sep 29, 2010)

  • The rotation and/or flipping of the board is now represented by a new tool bar icon.
  • JSoko now offers an automatic check for new versions of the program. (JSoko menu: info->search for new version at program start)
  • In the graphical level browser levels having at least one solution are displayed with a check mark. Thanks to Minh Hoang for implementing that!

New in JSoko 1.58 (Sep 21, 2010)

  • If the solver is opened and then closed the main window lost the focus so it has to be clicked again to play with key board. This is fixed now.
  • new feature: a new tool bar button allows to view multiple levels at once to select one for playing. Thanks to Minh Hoang for implementing that!
  • When the optimizer is opened the board is set back to the initial board position in the game view. Now the board stays as it is when the optimizer is opened. Thanks to Brian Damgaard for this suggestion.
  • If only a part of a solution is optimized (pushes range optimization) the displayed values during the optimization reflected the fake level created from the selected pushes range. Now the displayed values reflect the values with regard to the original level/solution. Thanks for Jean-Pierre Martel for this suggestion.
  • bug fix: when the optimizer has been started for optimizing a range of the solution and a new solution has been selected during the optimizer runs the optimizer couldn't be stopped anymore by the user (however, the optimizer normally stopped after having finished the optimizing).

New in JSoko 1.57 (Aug 17, 2010)

  • bug fix: when the player is played using the key board the program crashed

New in JSoko 1.56 (Aug 16, 2010)

  • bug fix: if the level is rotated or flipped while an animation due to a selected box is displayed the animation stayed at the previous box position.
  • game play: clicking at the player position now displays the reachable squares of the player
  • game play: the player can be moved by click&drag. Boxes can be pushed by click&drag.
  • game play: when the mouse enters the slider for browsing through the moves history the cursor turns to a hand symbol. Thanks for this suggestion to Brian Damgaard.

New in JSoko 1.55 (Jul 28, 2010)

  • bug fix: if the optimizer is used for optimizing a pushes range and iterating is enabled the optimizer can't be stopped up to the second iteration. In this version the iteration is automatically deselected when optimizing a pushes range is selected.
  • bug fix: if the optimizer is used for optimizing multiple solutions at once the solutions are colored to indicate that these solutions are being optimized. In some cicumstances the last found solution stays colored after the optimizer has ended. This is fixed now.
  • history slider: the history slider is not integrated in the moves/pushes display area.
  • pathfinding: the menu item for switching between moves optimized pathfinding vs. pushes optimized pathfinding has been removed. There now is a button in the toolbar for switching instead.
  • new feature: there is a new toolbar button for replaying a solution automatically.
  • bug fix: levels that contain boxes outside the player reachable area (usually boxes and goals set there for beauty reasons) have caused a crash when the level contains a savegame/snapshot.

New in JSoko 1.54 (Jul 9, 2010)

  • new level set by David Holland
  • bug fix: in huge free levels the path finding has crashed. This is fixed now.
  • bug fix: if the optimizer is opened and then the another level is loaded in the game solutions couldn't be imported in the optimizer anymore.
  • optimizer: competitions like the MF8 competition use rather huge levels. The optimizier can't handle these huge levels very well because in most cases there is not enough available RAM. Therefore there are two new features:
  • the pushes range optimization has been changed. Example:
  • If a range from 10 to 50 is selected the solution is analyzed. All boxes that aren't pushed in this pushes range of the solution are changed to walls. Furthermore the level is changed so that the board after push 10 is taken as new start position and the board after push 50 is taken as end position. This way higher vicinity values can be used for optimizing.
  • Yet, the optimizer has always tried to find improvements in all parts of a level. In order to be able of using higher optimizer settings it's now possible to mark the area that should be optimized. This is simply done by clicking or dragging in the board displayed in the optimizer (holding down the cntrl key or using the right mouse button when selecting the area will delete the marking of the selected area).
  • The optimizer then will only search for improvements in the selected area. This way it's possible to mark a really small area and then even use 3 boxes for optimizing (for instance: three boxes with a small number of vicinity squares like 6).

New in JSoko 1.53 (May 31, 2010)

  • new help: JSoko now shows a help at the start of the program. Currently this help is only available in English. It's possible to open this help from the program by pressing the F1 key.
  • optimizer: The optimizer offers a new check box for fixing the player end position. This is useful for players who split levels into several sub levels for better optimizing results.

New in JSoko 1.51 (Apr 22, 2010)

  • new help: JSoko now shows a help at the start of the program. Currently this help is only available in English. It's possible to open this help from the program by pressing the F1 key.
  • optimizer: The optimizer offers a new check box for fixing the player end position. This is useful for players who split levels into several sub levels for better optimizing results. Thanks to Ming for suggesting this feature.

New in JSoko 1.50 (Apr 5, 2010)

  • Fixed a display problem: levels which aren't assigned to any collection have been displayed multiple times in the levels view instead of just one time. Furthermore some internal debug information have been printed to the console. These prints have been removed from the coding.

New in JSoko 1.46 (Dec 28, 2009)

  • bug fix for simple deadlock detection: JSoko in rare cases falsely declared squares as deadlock squares. This resulted in false deadlock messages, false shown dead squares and let the optimizer run in an endless loop. Thanks to Sokobano for reporting this bug.
  • optimizer: bux fix for deadlock identification code: the optimizer now can find all deadlocks again. Due to a bug yet JSoko has missed some.

New in JSoko 1.43 (Jul 16, 2009)

  • skins: the animations are smoother and the speed of the animations is adjustable.
  • the skn skin format is supported now.
  • Walls of a level can be hidden.

New in JSoko 1.42 (Jun 7, 2009)

  • skins: new built-in skins (menu: View->Skins)
  • bugfix: fixed missing text for "save file"

New in JSoko 1.40 (May 18, 2009)

  • The level menu offers navigation to the next/previous unsolved level and the ability to copy a level to the clipboard regarding the current set transformations (e.g. a rotation).... A new menu for "moves" has been added that contains all functions regarding moves. It's possible to add moves from the clipboard (must be stored as "lurd"-string) to the game. The program shows a message when a level exceeds the maximum level size (currently 40 * 40 squares)