9 — Cleaning Up

Due Thursday, 14 November 2019, midnight

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

  • for the Design Task, place Remote.md in Planning/.

  • for the Programming Task, place
    • slow.md in Admin/

    • third-s.PP in Players/ Player/

    • loader.md in 8/

  • for the Testing Task, place admin-tests in a directory named 9

We will use your xadmin from 8 — Tournament and Game Observers.

Design Task The first phase of the project is coming to an end. Now that we have the game logic in place and well tested, it is time to plan the second phase of our Tsuro.Com, a Plan.

The key to this second phase is a refinement of the local protocol into a distributed protocol. This change should not affect the logical structure of the protocol. Instead it should spell out (1) which remote proxy objects take on which task and (2) what the format of the TCP messages looks like.

Keep this memo to at most one page.

Programming Task

For those of you who have not taken theory, it is mathematically provable that there is no algorithm that discovers whether a function (or method) call goes into an infinite loop.

Testing Task Develop an additional three tests for your tournament administrator integration harness.

The tests use the same input and output format as 8 — Tournament and Game Observers. Every player configuration may point to any one of the three deterministic strategies.

Your test may not use more than 20 players.

Pedagogy In a professional setting you would probably develop a suite of stress tests now. You would then profile your code base to discover hot spots. An inspection of every hot spot would help you differentiate those that have to be “hot” from those that are hot because of inappropriate coding. Sadly a single semester does not come with enough time to explore these (and other) realistic issues of software development.