10 — Remoting
Due Thursday, 21 November 2019, midnight Monday, 25 November, midnight
Delivery Place the product of this week’s project steps into your repo as follows:
for the Design Task, place the document in Remote/, a new folder in Tsuro/;
for the Programming Task, place all necessary items also in Remote/,
for the Testing Task, place xserver and xclients in a directory named 10.
Design Task Design the server and client start-up phase. Use a sequence diagram to describe the sequence of actions and events in this phase. If you must change any code, describe the changes via pointers to git commits and their messages.
Programming Task Implement the server-and-client architecture for Tsuro.com. Do not disturb the existing business logic. If you must, describe the changes via pointers to git commits and their messages in the design task.
call
arguments
result
playing-as
["playing-as", [Color]]
"void"
others
"void"
initial
["initial", initial]
take-turn
["take-turn", intermediate]
end-of-tournament
["end-of-tournament", [Boolean]]
"void"
=
=
[initial-place, ..., initial-place]
=
=
=
The server waits until at least six 20 (or more) players have signed up and for a minimum of at most one minute. When either of these conditions is satisfied, the server hands the players to the administrator to run a complete tournament.
The client must consume the ip address and the server port on the command line. A good name for such a client is xclient though this gets a bit too close to xclients for the test harness.
Testing Task Develop a test harness named xserver that starts up your server. The harness should consume the port on which it communicates from the command line; the default is 45678. It also consumes an input configuration for a test from STDIN. With this information it may construct a complete output for a test run.
Also develop a test harness named xclients that reads a test input
from STDIN in
the shape specified in from 9 —
Response to Peter’s astute analysis on piazza.
Addendum xclients is expected to connect the spawned players to the IP address at the given port given on the command line; if no command-line arguments are specified, xclients connects to LOCALHOST at 45678.
which components knows what.