PowerBASIC
Home Page
Forum
Tutorial
gbSnippets

Freeware
gbAnimator
gbCase
gbCodeLib
gbSnippets
gbGallery
gbNavigate
gbOfficeTimer
gbPlot
gbRegistry
gbReplace
gbSIRTS
gbSnippets
gbStreet
gbText
gbVRML
gbWebCam
gbXML

GBIC >> Software >> gbUnSnarl
gbUnSnarl

gbUnSnarl is an addictive game, where the object is to move circles until all connecting lines are blue, meaning there are no overlapping lines! The rules are quite simple but you'll find that playing the game can require some thought to win! Three levels of difficulty - Easy, Medium and Hard - are available.

Download (v2.62, 0.2M)

To put gbUnSnarl on your PC, just download the file above and unzip it into a folder of your choice.

I'd like to give special thanks to Rod Stephens (VB-Helper) and Rodney Hicks for their suggestions and help in testing gbUnSnarl. Additionally, the function used by gbUnSnarl to detect line segment overlaps is based on code from Rod's VB-Helper website.

Here's an image of a Graph and its solution:


Key Features

Here are some of the most useful gbUnSnarl features. See the context menu section below for a full listing of features and settings.

  1. 3 Levels of Play
  2. Onscreen information game statistics
  3. Record best performances (time to complete)
  4. Auto-Solving
  5. Save games to play later
  6. Online Help (this page)

If you play the game and have suggestions for new features, please let me know!


Playing gbUnSnarl

When gbUnSnarl starts, a new game is automatically generated at the current difficulty settings. Play consists of moving the circles by dragging them with a mouse until all connecting lines are blue (no overlaps). That is called "solving" the game.

gbUnSnarl will acknowledge when a game is solved.

To start a new game, press the "New Game", "Easy", "Medium" or "Hard" context menu options.


gbUnSnarl Window

gbUnSnarl has just one window where the circles and connecting lines are dispalyed. All settings and available actions can be seen by right-clicking on the application to display the context menu.

The gbUnSnarl window can be set to show or hide a variety of content - information to help the user better solve and enjoy the game.

  • Circle, line and overlap counts
  • Circle and line numbers
  • List of overlapping lines
  • Click counts and elapsed time
  • Temporary messages

All features of gbUnSnarl are accessed through the context menu. Just right-click on gbUnSnarl to see the context menu.

Here's an image of gbUnSnarl displaying all optional content:

During play, gbUnSnarl may display temporary messages in the lower left hand corner of the window.


gbUnSnarl Context Menu

Right-click on gbUnSnarl to display the context menu, from which all settings and actions may be accessed.

Here's a description of what each context menu item does:

  1. New Game - start a new game at the current difficulty level
  2. Easy - set difficulty to Easy
  3. Medium - set difficulty to Medium
  4. Hard - set difficulty to Hard
  5. Solve - gbUnSnarl will solve the Graph for you (animation)
  6. Show Stats - display the circle, line and overlap counts (upper-left)
  7. Show Time - display the elapsed time and number of clicks (lower-right)
  8. Show Circle Numbers - display numbers in the circles
  9. Show Line Numbers - display numbers adjacent to the lines
  10. Show Crossover List - display list of crossling lines (left side)
  11. Small Font - Use smaller font for displayed text
  12. Celebrate - Congratulate you for solving a Graph
  13. Quick Solve - Speed up the animated Graph solving
  14. Hide Circles - Hide the circles, but show the lines
  15. AutoSave Game - Save each new game automatically
  16. Pre-Scramble Pause - Show the Graph before it is scrambled for play
  17. Save Game - Save the current game.
  18. Restore Game - Load the saved game.
  19. Show Records - Display current elapsed time records (lower-left)
  20. Reset Records - Assign an high value to the Easy/Medium/Hard elapsed time records
  21. Help - Open this Help page in the user's default browser
  22. Exit - close gbUnSnarl

Notes:
Startup: When gbUnSnarl starts, it creates a new game at the current level of play.

Levels: The Easy, Medium and Hard levels of play contain different numbers of circles and lines.

AutoSolve: gbUnSnarl will solve the Graph if you wish. It animates the circles, moving them to positions that solve the Graph. Because of the way in which the Graph is solved, it is possible that the animation will pass through other Graph solutions before settling on a final solution.

Quick Solve:By default, the Solve feature moves each circle to the solved position, one circle at a time. In order to speed up the animation (for impatient users) the Quick Solve feature moves all circles at the same time.

Stats: The "CrossOvers" statistic changes real-time as you drag circles to new locations.

CrossOver List: The optional CrossOver list consists of pairs of numbers, corresponding to the numbers assigned to line segments.

Small Font: The small font option is provided to ensure that the CrossOver list can be viewed in its entirety during Hard levels of difficulty.

Celebration: When the user solves the graph, the gbUnSnarl celebration consists of a clarion sound and a voice congratulating the user.

Hide Circles: The Hide Circle feature is provide simply to allow users to see points of line segment overlaps that might otherwise be hidded by the size of the circles.

AutoSave: AutoSave is provided as a debug option for users. If a user experience a problem during a game, enable AutoSave will ensure that a set of game files are saved before the problem occurs and shared with the gbUnSnarl author if appropriate.

Pre-Scramble Pause: To create a game, gbUnSnarl first creates a solved Graph, then scrambles it for play. The Pre-Scramble Pause allows you to see the solved Graph before it is scrambled.

Save Game: Only 1 saved game is allowed. Saving a game writes over the previously saved game. When a game is saved, the click count and elapsed time are also saved.


Keyboard Shortcuts

The following key combinations are available to the user to access gbUnSnarl features:

  • F1 - Help
  • Ctrl-N - New Game
  • Ctrl-H - Hide Circles
  • Ctrl-L - Display Crossings List
  • Ctrl-S - Solve


Background - Planar Graphs

There's an entire branch of mathematics that covers Graphs, which for our purposes consist of circles and connecting line segments.

A planar Graph is one in which no line segments overlap.

There are algorithms which can be used to determine if a Graph is planar. Those are generally considered quite difficult to implement and are not used by gbUnSnarl. Instead gbUnSnarl takes a non-algorithmic, brute force approach to creating Graphs to solve.

For each new game, gbUnSnarl creates a planar graph by first placing a random number of circles on the Graph. It then adds lines between randomly selected circle pairs. If a newly added line overlaps an existing line, the new line is removed and the process repeats. gbUnSnarl may go through thousands of new line additions/removals in order to reach the assigned level of difficulty.

Once the planar graph is completed, the Graph is saved in memory and used as the basis for the Solve feature. The circles of the planar graph are then randomly re-positioned to create the Graph (with over-lapping line segments) that is displayed to the user.


Other Comments

Miscellaneous information is provided in this section.

INI File
gbUnSnarl application settings are saved in an INI file, kept in the same folder as the application itself.

UnInstall
To uninstall gbUnSnarl, just delete the folder in which the files were installed.

Comments and suggestions are welcome!