@startuml ClassDiagram
skinparam style strictuml

class "Game" as Game {
    board : Board
    diecup : Diecup
    player1 : Player
    player2 : Player
    activePlayer : Player

}
class "Player" as Player {
    playerName : String
    account : Account

    setPlayerName()
    getPlayerName() : String
    addValue (int value)

}

class "Account" as Account {
    balance : int

    addValue(int value)
    getBalance() : int
    balanceCheck() : boolean
}
note left
    Balance >= 0
    end note

class "DieCup" as Diecup {
    die : Dice[2]
    
    rollDie()
    getDiceValue() : int
    getTotalValue() : int
}

class "Dice" as Dice {
    faceValue : int

    getFaceValue () : int
    rollDice()
}

class "Board" as Board {
    board : Field[12]
    
    getField(int fieldNumber) : Field
}

class "Field" as Field {
    effect : int
    extraTurn : boolean

    applyEffect(Player) : boolean
    getExtraTurn() : boolean
}


Player *--> "1" Account
Game *--> "2" Player 
Game *--> "1" Board
Board  *--> "11" Field
Game  *--> "1" Diecup
Diecup *--> "2" Dice
@enduml