comp1110-ass2/assn-files/skeleton.md

82 lines
1.8 KiB
Markdown

# Simple draft skeleton:
# Overview
## Board Setup
* Create a grid of tiles
* Create islands and assign size and location (on tiles)
* Create "stone circles"
## On Game start functions
* Create player data (maybe using enums)
* Assign villages to players
* Assign settlers to players
* Randomly Assign resources and statuettes to map "stone circles"
## Exploration Phase
1. Pick player
2. Player places piece (use function to check placement rules)
3. Repeat with next player (while not Exploration Phase over)
## Check Placement
If piece is settler, check if one of:
* on unoccupied water
* on unoccupied land adjacent to one of their pieces
If piece is village, check on unoccupied land adjacent to one of their pieces
## Piece Placing
* Check placement (using function)
* Assign piece to tile
* If piece on "stone circle" > get resources and statuettes
## Exploration Phase over
If one of:
* All resources (not including statuettes) have been collected
* No player has any remaining moves available
# Classes/Fuctions
## Setup board
## Create player (requires input data, probably from player number and colour)
## Exploration Phase
## Check Placement (requires input data, probably piece annd returns bool)
## Place Piece (requires input data, probably from player and piece type)
## Exploration Phase over (bool)
# Objects
## Piece
* Owner (Player)
* Type (Settler, Village)
* Placed on (Tile)
## Tile
* Location (x,y)
* Type (Land, Water)
* Pieces (List of Pieces)
## Island
* Size (x,y)
* Location (x,y)
* Point value (int)
* Tiles (List of Tiles)
## Stone Circle
* Location (x,y)
* Resources (List of Resources)
* Statuettes (List of Statuettes)
* Claimed (bool)
## Player
* Name (string)
* Age (int)
* Score (int)
## Board
* Islands (List of Islands)
* Stone Circles (List of Stone Circles)