2023-03-14 14:39:08 +11:00
|
|
|
# Simple draft skeleton:
|
|
|
|
|
|
|
|
|
2023-03-14 15:09:33 +11:00
|
|
|
# Overview
|
2023-03-14 14:39:08 +11:00
|
|
|
## Board Setup
|
|
|
|
* Create a grid of tiles
|
|
|
|
* Create islands and assign size and location (on tiles)
|
|
|
|
* Create "stone circles"
|
2023-03-14 15:09:33 +11:00
|
|
|
|
2023-03-14 14:39:08 +11:00
|
|
|
## 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
|
2023-03-14 15:09:33 +11:00
|
|
|
* 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)
|
|
|
|
|
|
|
|
## Stone Circle
|
|
|
|
* Location (x,y)
|
|
|
|
* Resources (List of Resources)
|
|
|
|
* Statuettes (List of Statuettes)
|
|
|
|
* Claimed (bool)
|