Skip to content

Create Report regarding current design #7

@SimonPergel

Description

@SimonPergel

Given these rules:

Rules (note: the turn overview PDF describes the process well – available in canvas):
1. There are two players, either one local and one remote, or two remote players both connecting to a server.
2. There are 94 cards: 49 center cards, 36 basic cards, and 9 event cards
  a. Center cards consist of 24 region cards, 9 settlements, 7 cities, 9 roads
  b. The two principalities are organized as depicted in Figure 1.
  c. The remaining regions are assigned dice roll as follows and are then shuffled: Field: 3 and 1, Mountain: 4 and 2, Hill: 5 and 1, Forest: 6 and 2, Pasture: 6 and 5, Gold Field: 3 and 2
  d. Regions, settlements, cities, and roads become 4 separate stacks for use during the game.
  e. The basic cards consist of 9 action cards, and 27 settlement/city expansions. These are shuffled and divided into 4 equal draw stacks for use during the game
  f. The event cards stack is shuffled, and then the Yule card is moved to the 4th from the bottom
3. Each player draws 3 cards from a draw stack of their choice
4. The players take turns (random player starts the game):
  a. Roll the event die and the production die (If a brigand attacks, resolve the event before the production, otherwise start with production)
    i. Production: give both player the resource corresponding to the production die (0..3)
    ii. Event: Roll 1 = Brigand, 2=Trade, 3=Celebration, 4=Plentiful Harvest, 5&6=Event card
        1. Brigand: if you have more than 7 resources you lose all your wool and gold
        2. Trade: If you have the trade advantage, you receive 1 resource of your choice from your opponent
        3. Celebration: If you have the most skill points, you alone receive 1 resource of your choice. Otherwise, each player receives 1 resource of his/her choice
        4. Plentiful Harvest: Each player receives 1 resource of his/her choice
        5. Event card: draw a card from the event card stack and resolve the event
  b. Action phase: Play basic cards (either from hand or from the center stack), Trade
    i. Refer to card descriptions for basic cards, page 18-20, in the rulebook for behavior and cost
  c. Replenish your hand (choose which draw stack to draw from)
  d. Exchange a card from your hand (you may return one card to the bottom of a draw stack, and take one card from a draw stack of your choice, or pay 2 resources to choose 1 card from a stack)
5. The winner is announced when a player has 7 or more victory points at the end of his/her turn
Future modifications: (you do not need to implement these but create your design for modifiability and extensibility)
6. Support for different era (available in the core rulebook), and expansions (separate core rulebooks available as pdf in Canvas). Changes include (and may not be limited to) new cards, new game mechanics, and new
rules, as well as a different victory condition.

Please explain and reason about our design. The documentation should be sufficient for a developer to
understand how to develop the code, know where functionalities are to be located, understand
interfaces, understand relations between classes and modules, and understand communication flow.
Use good software architecture design and coding best practices according to SOLID principles and
Booch’s metrics.

  1. Reason about design choices in your new (refactored) design using SOLID and Booch
  2. Reason about how quality attributes have been satisfied in the new design. What design choices did you make specifically to meet these quality attribute requirements. Divide your reasoning into separate sections per quality attribute (helps me assess your exam)
  3. Motivate design patterns or choice not to use in your new design. If any, what purpose do they
    serve and how do they improve the design

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions