Do so at your own risk.
-
download the .ipa file with iTunes
-
extract puzzles
unzip -e ~/Music/iTunes/iTunes\ Media/Mobile\ Applications/Flow\ Free\ 1.7.ipa Payload/Flow.app/levelpack\*.txt
-
download the .apk file
-
extract puzzles
unzip -e Flow\ Free\ v2.4.apk assets/levelpack\*.txt
A tree of partially complete puzzle states. Each state has tile assignment (initially BLANK or WALL), a list of partial trace ends, and the number of vacant tiles.
The puzzle has a stack of untested alternatives and a list of completed boards.
- for each segment endpoint, repeatedly look for mandatory advancement
- check if it creates undesirable conditions
- pick a segment endpoint with the fewest number of alternatives
- try each alternative
- Patterns are translated into a JavaScript decision tree and compiled
- Mandatory patterns promptly force into undesirable conditions rather than test for the potential
- Puzzle and Tiles share attributes for ease of root Tiles creation
- Tiles are lightweight to avoid overhead setting up each alternative
- Display refresh is periodic and not a bottleneck to alternative traversal
- Array splicing avoided by recycling array position
- Board is represented as an one-dimensional array with walls tile assigments
- Mandatory segment end extension prefers just-moved endpoint (does not increment the index)
- Guesses recycle the existing Tiles to avoid one clone
- Pattern results are tile offsets and are lazily used to optimize multiple guesses