12 — Implementing Tournament Observers— Bonus
Due Monday, November 12, midnight
Delivery Create a top-level folder named 12off/.
place a file called reworked.md into 12off that explains what you improved about your existing code base in response to having a week off. Use a Markdown unordered list to enumerate your changes on a per git commit basis
if you do not believe that your code needs to be improved, you can work on one or both of the following proposals to enhance the project functionality. If you choose this option, place a file called enhanced.md into 12off. The Markdown enumeration of one or two bullet items should state which enhancements you implemented.
Place the Santorini-specific enhancements into the appropriate Santorini/ sub-directory and the xtm harness in your 12off folder.
Implementation Task: An Infinite Playing Field Your manager has a brand-new idea for making Santorinin more exciting. Instead of limiting the playing field to a 6 by 6 grid, let the players use a grid that extends infinitely both toward the southern and eastern direction.
Naturally, the lifting of this limitation does not make much sense for the beginning of the game. Hence, players remain obliged to initially place their workers on the 6 by 6 grid. However, after the game has started the players may use the full, infinite play ground.
Implementation Task: Tournament Observer In addition to observing the steps in individual games, a supervisor may wish to observe nothing but the outcome of encounters ("best of" series) within tournaments.
Modify your tournament manager so that its context can register an observer. The manager must inform an arbitrary number of observers about the outcome of each encounter in a tournament. The outcome information includes who won and, if applicable, whether the loser got kicked out and why.
Implement an observer component that renders its data representation as a JSON value to STDOUT.
[EncounterOutcome, ...]
[String, String], which is the name of the winner followed by the loser;
[String, String, "irregular"], which is like the first alternative but signals that the losing player misbehaved.
Per piazza post @201, it is ambiguous whether the observer is to print a sequence for the entire tournament or a sequence per "best of" series. While I consider the former interpretation more natural, feel free to implement either interpretation.