Hello everyone. First, thank you all for a great season one, you are all excellent competitors and I greatly admire all of your programs’ unique strengths.
My technique in the final match seems to be the subject of a minor controversy, so I wanted to clear a few things up.
Ryan’s assessment in the opening post is quite accurate; my program passed turn 0 and identified the opponent by the signature opening turn, then attempted to replicate a parsed replay, except for turn 0 which had already passed.
There is a little more to this approach than meets the eye, and ultimately it is a strategic analysis and application of the publicly available game data, although I do admit it was a bit of a ‘cheese’. In the interest of transparency I will discuss my thoughts and experiences with this technique thus far.
Using an approach such as this carries several serious downsides in terms of a match strategy. For one thing, many programs share matching turn 0’s, resulting in the need for further methods of identification. In my development I experimented with a variety of identifying factors such as computing time and secondary turn placement to attempt an ID as fast as possible.
However, this itself creates another problem: once the first turn has passed, the game is now “off script”, so to speak, and committing to following a parsed replay could be sending yourself to a misguided doom. Additionally, simply by passing on turn 0 to get an ID, the butterfly effect of that missed turn might similarly invalidate any replays.
To attempt to mitigate this effect, I created an elaborate data analysis program that cross-referenced all the winning replays against all programs with similar starts, and identified candidates both with minimal action in the first few turns of the game, and with similar opening moves against the maximum number of opponents with identical signatures. This was critical, as it allowed for a potential recovery by switching scripts if it was later revealed that the initial ID was not correct. Simply following the first winning replay that popped out of the API typically had a very low success rate, and was not at all flexible. Compounding all of this is that the opponent is ultimately unknown, and a large amount of preparation went in to preparing for a variety of opponents and contingencies.
I wanted to reveal all of this to make it clear that I was not just out to sabotage kkroep, and neither did I hand-pick and hard code Ryan’s response. Ryan’s replay was selected by my analytic program from a large pool of candidates as the most flexible in terms of opening moves against the Demux series, and as the most likely to succeed even with a blank board on turn 0. I would like to acknowledge and appreciate Ryan’s team’s program, your predictor is fantastic and your performance against the fierce competitors in the Demux series is something to behold.
I imagine that the possibility of using opening moves as an identifying signature has occurred to a few other players, and I would be curious as to what thoughts or results, if any, they experienced.