File menu map selection
The File menu can be used to: select a map set by name, select a map by name, read a new map set from a file, read a solution from a file, read a saved map position from an earlier attempt, save the current position, give information about the current map, show an animation of your best solution, edit a map or create a new one, save a map, set the skin, set the animation speed, set the font size, set the mode in which maps are selected.
From version v0.03, Sourkoban uses a file to store your best solutions for each map. This file is named .sourkoban_results.txt and is saved in the directory/folder from which the program is launched. This database of results is used in several ways: in the map selector; to inform you about your progress; to show animations of your best solutions; to automatically select the next map you have not completed, or which you have not completed in the same number of moves (or less) as the built-in solution.
Each time you complete a map the program looks up your previous result. If it is the first time you have solved this map, or if your solution is shorter than before, the new path will be saved. Appropriate pop-up messages will be displayed: "Well done again", "Well done! New map solved!", "Well done! New personal best!", "Whoopee! You matched the built-in!", "Whoopee! Whoopee! You beat the built-in!".
As shown in the Figure, a map set can be selected using a cascading menu in the File menu. The name of the current map set will be greyed out. Any map sets read in or any edited maps will be appended to the list of map sets. In the example shown, there is one of each: map sets are listed by their file name and edited maps are named "Editor".
The "Select map" option in the File menu will bring up the window shown in Figure 2. This map selector shows the map index, the number of moves in the built-in solution, the number of moves in your solution (0 if you have not completed it) and the map or level name. To select a map the user double clicks on the corresponding line and then clicks "OK".