7.1.0.2

5 — Designing Interfaces for the Common Ontology

Due Monday, September 24, midnight

Delivery You must deliver a single artifact in your Santorini/Design directory: board.PP.

Design Task Design an interface for the Santorini game board.

The board does not "know" the rules of the game. It does "know" that it is a square of fields or cells, that the players’ workers and buildings are placed on these squares, that workers can be moved, and that workers can add a floor to a building. Borrowing from the physical game, one can argue that "buildings" know that they may consist of at most four floors.The fourth floor is a blue rounded roof top.

As you remember by now, The interface must describe
  • all relevant data representations (for the relevant information)

  • all essential functions/methods, and

  • all the knowledge needed to understand what they mean.

For example, a method that is to move a "worker" from one spot on the board to a neighboring needs to explained with knowledge about (identifying) workers and directions.

Write up your interface specification as a single source file in your chosen language. A good specification will mix technical terms from your language (e.g. function headers, interfaces) and English (purpose statements or data definitions in untyped languages). Keep in mind that a specification must define all terms. Make sure to start the file with a purpose statement.