7.8.0.1

8 — Tournament and Game Observers

Due Thursday, 07 November 2019, midnight

Delivery Place the product of this week’s project steps into your repo as follows:

Design Task Evaluate the description of the software repository that you have been asked to work on. According to your predecessors, who left for a lucrative job at TwiddleDeeTwiddleDUmb, the README.md file should help you to easily find the following files:
  • board.PP,

  • rules.PP, and

  • referee.PP.

The description of the dynamics should also help you understand how the three pieces work together.

Describe in a WELCOME.md document (1) how you found the corresponding components starting at the README.md file and (2) how easily the dynamic description helped you relate these three pieces. Finally, (3) investigate how you would implement the following change via these three pieces. If a player places a tile that causes a collision, the tile is placed and the acting player is eliminated. In particular, consider whether you have to change any other components in the repository to get all unit tests to pass again. How easily would you be able to accomplish this task? What is missing from the available project/file descriptions and purpose statements for classes, modules, functions, and methods?

Keep this memo to at most one page.

Programming Task

Pedagogy These tasks should require small changes to the referee and administrator so that you get to know these components. At the same time, the emphasis is on creating new components. Many companies use such an introduction to a code base to familiarize you with the repository and the company’s software practices. (Of course if they are run by former EE/CEs they don’t have any.)

Testing Task Develop a test harness for the administrator. The harness should dynamically load a strategy component and combine it with the mechanical player. For now load the first-s strategy.

The input is an array of at least three and at most NNN JSON objects:

    A PlayerSpec is:

      { "name" : String, "strategy" : StringAsFilePath}

For now the "strategy" field is always a path to the first-s strategy module. Within the array, the Players are arranged in descending order of age.

The output uses the same format as the test harness in 7 — The Administrator.

Create two tests and place them in admin-tests.