comp1110-ass2/assn-files/skeleton.md

128 lines
2.9 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
# Settlement Phase
## Setup
1. Remove pieces from board
2. Assign resources and statuettes to stone circles
3. Player after last player from exploration phase goes first
## Play
1. Pick player (from setup.3)
2. Player places piece (use settlement check function to check placement rules)
3. Repeat with next player (while not Exploration Phase over)
## End
Use same conditions as exploration phase over
Score
# Scoring
## Island Scoring
* If player has pieces on > 7 islands, score 20 points
* If player has pieces on 7 islands, score 10 points
* Otherwise, score 0 points
## Links Scoring
1. For each player get largest link
2. Score 5 points per island in largest link
## Majorities Scoring
* Player with most pieces on each island type scores points assigned to that island
* Ties are distributed evenly rounding down
## Resources Scoring
* For each player
* For each resource
* If >3 of resource, score 20 points
* If 3 of resource, score 10 points
* If 2 of resource, score 5 points
* If player has all 4 resources, score 10 points
## Statuettes Scoring
* Each statuette is worth 4 points
# Classes/Fuctions
## Setup board
## Create player (requires input data, probably from player number and colour)
## Phase play
## Check Placement (requires input data, probably piece annd returns bool)
## Place Piece (requires input data, probably from player and piece type)
## 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)