Due: Monday, Februrary 8, 11:59pm

Submission:

  1. At the top-level of your team’s Khoury Github repo, create a directory Snarl with the following:

    1. a directory Planning/ containing the files plan.md and local.md

    This is so you have your designs close to your code as you develop later on.

  2. Submit a ZIP archive with both plan.md and local.md on Handins.

Design Task

Read the description of Snarl, a custom designed game.

We will develop the software to run games of Snarl and tournaments for automated players adversaries. In a tournament, other people will supply the code for adversaries, and you will provide the framework for running games for these automated entities. The goal is to run tournaments where every signed up player gets a chance to participate in several Snarl games against these new enemies, in a manner yet to be determined.

Write up a project analysis. The analysis should consist of two parts:

  • Part 1 describes the identifiable components of your software system. Ask yourself
    • what are the pieces that make up a player

    • what are the pieces that make up an automated adversary

    • what are the pieces that make up the game software

    • “who” knows what, “who” needs to know what, and how do “they” communicate

      For the communication part, sketch a UML-ish sequence diagram in local.md.

    • what common knowledge is necessary to make communication successful.


Note: This prose uses “who” and “they” in reference to pieces of software. Think of them as possibly independent “actors” and humanize them temporarily. This is standard practice in techincal writing.


  • Part 2 describes how you should proceed about implementing these pieces. You will propose milestones for the project. Keep in mind that you wish to have “demo” software soon so that a potential client can admire fully working prototypes.

The text of both Parts 1 and 2 (i.e. not the sequence diagram) must be in plan.md.

Each memo file must not exceed one page.