DankRank / shortsphere

bruteforcing the shortest path through all 128 Blue Sphere patterns

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Blue Sphere shortest path

In Blue Sphere each level procedurally generated by combining four chunks, which are picked out of a set of 128 predefined patterns. If you collect all rings in a level, instead of going to the next level, you advance 10 levels. What is the smallest number of levels you have to beat (starting from level 1, without using codes) to see all 128 patterns?

The answer is 49, and there are 6 ways to do it:

49 100110010101010001001100101110110101010010010011
49 100110010101010010001100101110110101010010010011
49 101010010101010001001100101110110101010100010110
49 101010010101010010001100101110110101010100010110
49 101100010101010001001100101110110101010100010110
49 101100010101010010001100101110110101010100010110

Where 0 means complete the level normally, and 1 means complete it with all the rings. Note that there are 48 1's and 0's in the lines above, as the way you complete the 49th level doesn't matter.

Graph

You can follow any path as long as you don't combine red and blue edges. Circled arrows mean collect all rings.

the graph

Maps

Relevant maps can be found here:

Progression

  • Jan 24:
  • Jan 25:
    • Made a little script in Python and found a 74 level solution.
    • None of the 44-level paths visit more than 123 patterns, which rules out any solutions shorter than 46.
    • I rewrote the code in C++ and improved the upper bound to 72, 65, 64.
    • By manually picking various initial paths I improved the upper bound to 63, 61, 60, 59, 56.
  • Jan 27: I wrote a runner that allows me to do a full search on multiple threads.
  • Jan 28: 55, 54. I start the git repo.
  • Jan 29: 53, 52.
  • Jan 30: 51.
  • Jan 31: 50, 49. Search finished.

About

bruteforcing the shortest path through all 128 Blue Sphere patterns


Languages

Language:Python 58.7%Language:C++ 28.7%Language:Shell 9.7%Language:Makefile 2.9%