Sokoban YASC Changelog

What's new in Sokoban YASC 1.634

Dec 16, 2016
  • On the "Open" window menu, the default value for the option "Show solutions?" has been changed to "Yes", so the list with levels in a file includes a column showing the best found solution for each level. Earlier, that column was disabled by default in order to save screen space, but many users probably never noticed that they can get a very useful overview of their solved levels by enabling that column.
  • A console mode version of the YASS Sokoban level solver can be downloaded from the same website as Sokoban YASC. In that package, there is also a special version of the solver which can solve Sokoban levels constructed from Orimaze puzzles (see the 1.632 release notes for a description of Orimaze puzzles). This special solver has been improved in different ways, making its conversion back and forth between a Sokoban level and its underlying Orimaze puzzle even more forgiving about small deviations from regular Orimaze-based Sokoban levels.
  • Minor changes.

New in Sokoban YASC 1.629 (Jan 7, 2016)

  • Windows 10 compatibility: The Windows 10 operating system ships with
  • the default text size set to 150% of the unscaled size. This
  • aggravates a problem caused by the new default behavior recently
  • introduced by the Windows operating system for text sizes bigger
  • than 100%, which in effect makes all texts displayed on the screen
  • by the application look blurry. Sokoban YASC has always been a
  • well-behaved application and has always handled scaling issues
  • itself. The only thing missing was to disable the new default
  • Windows behavior. In this new version, texts again always appear on
  • the screen as they should, but unfortunately, Windows still scales
  • the application specific mouse cursors, making them look ugly. If
  • somebody knows how to disable this scaling, a tip will be highly
  • appreciated.
  • . Minor changes.

New in Sokoban YASC 1.628 (Dec 15, 2015)

  • Added a new minor feature: "Replay solutions for solved levels". After replaying a solution for the current level, like the normal replay feature always has done, the application automatically advances to the next solved level and replays it, and so on. To use it, keep the keyboard keys [Shift] and [Ctrl] pressed while clicking the "Solution" button on the screen with the mouse. Alternatively, use the keyboard shortcut key combination [Shift] + [Ctrl] + [L]. Thanks to Wayne Campbell for suggesting this feature.
  • Minor changes.

New in Sokoban YASC 1.627 (Oct 26, 2015)

  • Bugfix: The accompanying YASS level solver had begun classifying some insolvable levels as invalid levels rather than just unsolvable levels. Levels with an immovable box at a non-goal square were affected. No harm was done since the level was unsolvable, so it was just a matter of the wrong explanation appearing on the screen. Thanks to Valdis Berzins for reporting this bug.
  • Minor changes.

New in Sokoban YASC 1.626 (Oct 2, 2015)

  • The solution optimizer tool allows the user to specify a generic "default settings" optimization mode for a given optimization task, leaving the decision about which mode to use to the currently loaded optimizer plugin, which presumably offers some sort of default value selection. Now this actually used optimization mode is shown on the screen while the task is running instead of just showing the text "default settings". When the task has finished, the mode for the task reverts back to "default settings", so the original request is kept intact for any further processing. Likewise, if the optimization was successful and produced a new improved solution, then this new solution inherits "default settings" as optimization mode. Thanks to Paul Voyer for bringing this up.

New in Sokoban YASC 1.625 (Sep 16, 2015)

  • Updated the "KSokoban" skin by Anders Widell with animations, improved walls, and boxes with different colors at floor squares and goal squares. Thanks to George Petrov, author of YSokoban, for collaboration on this skin.
  • Bugfix:
  • During installation of a new version of the application on top of an existing version, there could theoretically, but extremely unlikely to happen in practice, be a tiny so-called "memory leak", meaning that a small amount of the available computer memory wasn't recycled after it had been used temporarily during the installation. No harm was done. The leak has probably never occurred in practice, and even it has, the leak was too small to have any impact on the application's ability to run, and it was gone when the user closed the session with the application which installed the new version.

New in Sokoban YASC 1.620 (May 4, 2015)

  • In the "Open level" window, the field with the level notes always started in read-only mode in each session with the application. This was a deliberate choice, to protect the notes against stray keypresses, but it can be argued that this is too conservative. Now the read-only state is kept between sessions, so users don't have to enable editing repeatedly if they often edit level notes. This is also consistent with the behavior implemented for solution notes in the "Snapshots and solutions" window, which always has done it that way. Thanks to Paul Voyer for this suggestion.

New in Sokoban YASC 1.619 (Apr 17, 2015)

  • Bugfix: The application wouldn't start an optimizer plugin if the level had the maximum size, i.e., 50x50 squares in the standard version, and 100x100 squares in the special edition. Instead, the message "Invalid level" falsely appeared on the screen in the optimizer status field.

New in Sokoban YASC 1.613 (Oct 21, 2014)

  • Added an undocumented feature for selecting a push interval to be optimized by the optimizer. The interval is given by the positions of a start marker and an end marker. Normally, when the user clicks and drags the mouse inside the slider area, the nearest marker is moved. Now the middle mouse button always selects and moves the end marker, and it toggles the "repeat interval" mode for the solution.
  • Added a new menu item to the optimizer menu in the "Tools" window: "Set optimization interval for all selected solutions". It copies the interval and the interval repeat mode for the currently focused solution to all the solutions selected for optimization. The new menu item can also be found on the right-click context menu for the optimizer task list.
  • Minor changes.

New in Sokoban YASC 1.612 (Oct 16, 2014)

  • Added a skin script for importing skins from the "SokobanP" Sokoban clone.
  • Added optimal skin settings for new versions of the "Sokoban for Windows" skins "Classic" and "GreenMetallic".
  • Minor changes.

New in Sokoban YASC 1.611 (Oct 15, 2014)

  • Bugfix: In the "Tools" window, the solver, the optimizer, and the generator have almost the same screen layout. The user can customize the size of the different group boxes. Changing the widths worked all right, but setting the height of their common group boxes to something different than the default value made the application reset these group box sizes to default values the next time the application was opened. Thanks to Paul Voyer for reporting this bug.
  • Bugfix: In the "Solver" window, if the task list was empty, then activating the button "Add remaining levels from the opened collection to the task list" had no effect if the opened collection contained exactly two levels. Thank to Matthias Meger for reporting this bug.
  • Minor changes.

New in Sokoban YASC 1.609 (Jul 28, 2014)

  • Added about a dozen small improvements and changes, most of which are important even though they are too small to deserve a detailed description.

New in Sokoban YASC 1.608 (May 3, 2014)

  • Added a small refinement to the level file reader, so it doesn't misinterpret a text line with a level title like "#50 (3)" as a board line. All the characters happen to be valid board line constituents. To interpret the numbers "50" and "3" as run-length encoding counts, the reader just required a valid board line
  • character after the number. The new version notices that "3" can't be a run-length encoding count because it's not followed by a character denoting a wall, a floor, or an object on the board. Titles ending with a number like in the example occurs frequently if the user makes a compilation with levels from several level sets. When necessary, Sokoban YASC adds such numbers to keep all titles unique.
  • Bugfix: The duplicate finder tool offers the convenient feature "Synchronize solutions for duplicate levels", which distributes solutions to all similar versions of a level, no matter in which level collection the level is located. On rare occasions, the synchronization missed an opportunity for copying a solution from one level to another. Thanks to Findus for reporting this bug.
  • Minor changes.

New in Sokoban YASC 1.607 (May 1, 2014)

  • Bugfix: The duplicate finder tool offers the convenient feature "Synchronize solutions for duplicate levels", which distributes solutions to all similar versions of a level, no matter in which level collection the level is located. On rare occasions, the synchronization missed an opportunity for copying a solution from one level to another.

New in Sokoban YASC 1.606 (Apr 22, 2014)

  • Bugfix: On rare occasions, the accompanying YASS solver could terminate abnormally with an "Access violation" error message. If the solver against all odds found a packing order for a large level with more than 85 boxes, but less than 125 boxes, then a flaw in a guard against overflowing an internal table could kick in if the number of intermediate parking squares in the packing order exceeded a certain percentage of the number of boxes on the board.
  • Bugfix: On rare occasions, the accompanying YASS solver could get caught in a long packing order calculation without noticing that a user-defined time limit should terminate the search. Normally, the calculation checks the time limit frequently, but there was one path through the calculation which ran unchecked, something which affected very large levels only. No harm was done since the user could still terminate the solver manually.

New in Sokoban YASC 1.605 (Apr 17, 2014)

  • Minor changes.

New in Sokoban YASC 1.604 (Mar 10, 2014)

  • Minor changes

New in Sokoban YASC 1.602 (Dec 12, 2013)

  • New optimizer feature: "Partition solution into subintervals". For a large level with a long solution, it's sometimes helpful to split the solution in subintervals and process them individually by the optimizer. Since version 1.594 it has been possible to select an interval to be optimized, and it's this feature which now has been extended, so starting from the selected interval, the rest of the solution can be split into subintervals of the given size and then optimized. To use this feature, first select an interval. Then open the context menu by right-clicking the task on the task queue with the mouse. Here you'll find the new menu option "Partition the rest of the solution into subintervals". Background information: The accompanying YASO and YASS optimizers split large solutions into subintervals automatically, if the solution size and the memory limits of the computer make this necessary. The new manual split feature can be seen as a light-weight variant of the automatical
  • split, and since the difference can be many hours of computation time for large solutions, the new manual split feature is often preferable. Thanks to Findus for statistics showing that this new feature is useful.
  • New optimizer option: In the accompanying YASO and YASS optimizers, the retrograde analysis in the precalculation of deadlocks can be disabled (by setting "deadlock complexity" to 0), so only "first-order" deadlocks are found. This is useful in connection with the new subinterval optimization mentioned above. If the intervals are small and the level is large, then the full-blown precalculation of deadlocks with retrograde analysis can take longer time than the actual optimization, and with small intervals the benefit of having a large set of deadlocks available during the optimization is negligable. This new option makes the deadlock complexity a more dynamic value than it used to be, and for that reason, it's now subject to the expire-after-24-hours policy which protects the
  • optimizers against settings tailored for one specific puzzle and
  • then forgotten by the user..
  • Added new option to 'Settings': "Control | Tools | Optimizer | Intervals | Subinterval overlap (%)" with default value 10.
  • Bugfix: After importing a previously saved solver task list or optimizer task list, the editor window showed an empty board, or more precisely a wall-filled board. No harm was done, and the level showed up correctly again after returning to the main window and then re-opening the editor.
  • Minor changes.

New in Sokoban YASC 1.601 (Oct 11, 2013)

  • The text format for puzzles stored in a text file allow run-length encoding of the boards and using "|" as row separators when multiple board rows are combined on a single text line. A "|" at the end of a text line is optional and may be omitted. The newly added support for empty interior rows (version 1.600) was, however, too
  • restrictive about text lines ending with such a redundant "|". As expected, a text line with a single "-" was interpreted as an empty interior row candidate (depending on the context), but if the line ended with "-|", with nothing but empty rows in the line, then itwas not interpreted as an empty interior row candidate.

New in Sokoban YASC 1.535 (Jun 22, 2010)

  • "Sokoban for Windows" (SfW) by Bjoern Kaellmark is currently one of the best Sokoban clones, and it also offers a comprehensive collection of levels for download from its homepage. The level format is, however, slightly incompatible with the otherwise versatile import format in Sokoban YASC. The SfW levels have titles after the board, tagged with a leading ";". The ";" tag is an old deprecated convention and Sokoban YASC has always handled it correctly, but Sokoban YASC expects titles before the board, and notes between the levels, possibly with a "Title:" key/value pair. The effect was that an SfW level got its title from the preceding level during import. Furthermore, copy-pasting an SfW collection into Sokoban YASC via the clipboard gave the new collection a generic file name like "Levels" because the SfW text file doesn't follow the convention to specify the collection name with a "Set:" key/value pair. Instead, the collection name appears as the first non-blank line in the SfW text file, also tagged with a leading ";". The level reader in Sokoban YASC has been tweaked to cope with both of these issues, but it's important to note that all this is merely a hack added for practical purposes, and that Sokoban YASC does not sanction the SfW level file format in any way. "Sokoban for Windows" (SfW) by Bjoern Kaellmark recently upgraded its skin format so it uses PNG images instead of BMP images, thereby breaking the Sokoban YASC skin import of SfW skins. After adding a PNG image loader to Sokoban YASC (see the next point on this "Release Notes" list), the skin import of SfW skins in Sokoban YASC is now working again.
  • Added partial support for images in PNG format, supplementing the existing support for BMP images and JPG images. The limitation is that any transparency information in the PNG image (e.g., a so-called "alpha-channel") is dropped because Sokoban YASC is built to operate with 24 bits images only. Even so, supporting PNG images in this limited form is an important improvement due to the fact that PNG is the preferred format for web applications at this point of time. Sokoban YASC has been developed using the programminglanguage "Delphi 4" which hasn't native support for PNG images. New versions of Delphi support PNG images, but it's not an option tobuild Sokoban YASC with new Delphi versions because they don't offer backward compatibility for old projects. New Delphi versions are, very naturally, built from the ground up using modern Unicode texts, whereas old projects like Sokoban YASC are from an era where textsstill were represented using 8 bits character codes, and contrary to what one might think, it's neither a mechanical nor an easy transformation to change the text system in an old and huge project like Sokoban YASC. Doing it amounts to reprogramming most of the project from scratch. Writing a PNG image loader is such a hugeundertaking that it's not practical to write one's own, so instead the solution has been to find a third party product. The "ImageFileLib" project by Michael Vinther contains a PNG image file loader coded in Delphi, and the code comes with a liberal GPL-compatible license, so after massaging the code a little, it now serves as a plugin for Sokoban YASC. The plugin is called "PNG.dll" and it's installed together with Sokoban YASC, so normally you will not notice that it's a separate module. You only need to take notice of that if you belong to the small group of users who manually move the application away from the default installation folder to a folder of your own choice. In that case, you must move "PNG.dll" along too.
  • Bugfix: Importing a certain type of Sokoban++ skins didn't work, or had stopped working. The bug affected skins with all images for the skin gathered in a single image.

New in Sokoban YASC 1.533 (Apr 15, 2010)

  • Added new levels by David W. Skinner, including built-in solutions. Currently, there are built-in solutions for all levels bundled with the application.
  • Improved the status bar hint texts for the duplicate finder tools "Update solutions for duplicate levels" and "Create new collection from solved levels..." so they document a subtle limitation related to "similar levels" versus "duplicate levels". The limitation has rarely any practical importance, and it only applies to the search for levels similar to the currently selected level. In particular, it doesn't affect the duplicate finder when it searches for all duplicate levels.

New in Sokoban YASC 1.532 (Apr 7, 2010)

  • Minor changes.

New in Sokoban YASC 1.531 (Apr 6, 2010)

  • Bugfix: Duplicate finder scenario: After searching for levels similar to the currently selected level, the user has the option to distribute solutions to all identical levelsIf the search had been performed with a match threshold less than 100%, and if one of the found levels wasn't a compatible duplicate, but only a similar level with a solution, then the distribution failed with an "Internal error" message Thanks to Matthias Meger for reporting this bug.
  • Please note that there is an undocumented subtle limitation related to duplicate levels and similar levels: Only the currently selected level and its duplicates exchange solutions An example: The currently selected level "A" has 3 similar levels "B", "C", and "D". "A" and "C" are compatible duplicates and exchange solutions If "B" and "D" happen to be a different pair of compatible duplicates, they don't exchange solutions even though they could All the duplicate finder tools only perform actions related to the primary
  • representive for each set of levels grouped together by the duplicate finder, hence, this type of limitation also applies to the other tools, for instance, "Create new collection from solved levels".
  • Bugfix: Sokoban YASC has a 100,000 moves limit for solutions and snapshotsLevels imported from different programs may have longer solutions and snapshots, and Sokoban YASC handles them gracefully by treating them as part of the level notesThat way, the oversized snapshots and solutions aren't lost when the level file is imported and updated by Sokoban YASC However, during the attempt to import an oversized solution or snapshot, a bug (an index out of range) sometimes triggered an access violation error message on the screen.
  • The bug was harmless and didn't affect the treatment of the level
  • Minor changes.

New in Sokoban YASC 1.530 (Mar 30, 2010)

  • Minor changes

New in Sokoban YASC 1.519 (Dec 10, 2009)

  • The complete program sourcecode as one zip-compressed file.
  • You only need to download this file, if you want to modify or study
  • the program.

New in Sokoban YASC 1.516 (Nov 14, 2009)

  • Bugfix: The duplicate finder didn't always search though all the folders it was supposed to. The flaw only affected the functions "Find levels similar to current level" and "Find duplicates of current collection" and not the "Find all duplicate levels" function. If the selected level or collection was located in a subfolder of one of the folders selected for investigation, then other files in the same folder (and its subfolders) were not investigated. Thanks to Findus for reporting this bug.
  • Bugfix: The duplicate finder tools, e.g., "Synchronize solutions for all duplicates", could on rare occasions stop with the message "Internal error". The flaw was in the built-in control mechanism which triggered the message, and not the tools themselves. Thanks to Matthias Meger for reporting this bug.
  • Minor changes.

New in Sokoban YASC 1.510 (Oct 30, 2009)

  • Added new levels by David W. Skinner, including built-in solutions.
  • Furthermore, David W. Skinner has streamlined the naming convention for his levels by officially renaming the level collections "Mas Sasquatch" and "Mas Microban" to "Sasquatch II" and "Microban II" respectively.
  • Minor changes.