April 20, 2018 Marathon Matches: Retro-Visualizers
One of the most important tools in a Marathon Match is a visualizer – a program which allows the participant to run their solution locally and to get a visual representation of its performance (without the visual component it’s called a local tester). These days the visualizers are a de-facto standard for the matches, and they tend to have a similar ambience – maybe because I tend to rely on existing state of the art code heavily rather than inventing the visualization from scratch each time 🙂 Let me show you several of the more interesting visualizers from the days when they were still a new addition to the track.
The first Marathon Match was held in December 2005. However, a visualizer hasn’t made its appearance until MM 10 DiscretizedContinuousPacMan in January 2007. (By the way, sample solutions in different languages first appeared as early as MM 8 MazeEscape, but haven’t been added to the “standard” until almost a decade later.)
An example of visualizers of that epoch can be seen in MM 17 ContinuousSameGame, which happens to be the first Marathon with a visualizer in which I participated. The problem can be summarised as follows: you are given a grid of colored blocks; you can remove continuous groups of two or more blocks of the same color, which causes the blocks on top of them fall down to the empty spaces (and possibly form new groups); the goal is to remove as many blocks as possible.
The interface looks more complicated than the modern one: it has most of the same components but they can be configured in the UI, not passed via command line parameters.
For comparison, here is visualization from the ongoing MM 100 SameColorPairs which also asks the player to remove some tiles of the same color from the grid.
MM 20 ImageReconstruction is a great example of a problem dealing with images, and thus of a very picturesque visualizer. The problem was: given a photo chopped up in small squares, reconstruct it using as few queries regarding the placement of the pieces as possible. Sadly, it didn’t help my performance in the match – somehow I failed to realize that it’s a really bad idea to do an example submission if the code can’t reconstruct a photo even locally 🙁
For comparison, here is visualization from a recent MM 95 CirclesMix in which one had to draw a given photo using only circles. As a tribute to ImageReconstruction, I used a photo of a burger as one of the tests in CirclesMix 🙂
Speaking of animated visualizations, they are usually quite spectacular, and a great showcase of just how good the top solutions are. The problems for Marathon finals at TCO or TCCC are usually chosen with that in mind, since most Topcoder members are just observers and not participants. Here are several examples.
2007 TCO Marathon Finals Navigator asked the finalists to navigate a spaceship through a series of waypoints in a two-dimensional space with several stationery planets. Here is a visualization of the writer’s solution; visualizations of participants’ code at various stages of the match can be found here.
2007 TCCC Marathon Finals Tank involved driving a tank on a terrain of varying elevations and shooting at moving targets.
2008 TCO Marathon Finals CarRace had the finalists race their cars along a track with several waypoints, somewhat similarly to the previous year but with different physics. More visualizations can be found here.