Documentation
¶
Index ¶
- Constants
- Variables
- func CardColorToInt(color CardColor) int
- func ColorValueByHashColorValue(hashValue HashValue) (CardColor, CardValue)
- func GetCardColor(color CardColor) string
- func GetCardUrlByValueAndColor(color CardColor, value CardValue) string
- func GetCardValue(value CardValue) string
- func GetTableColorOrder() map[string]CardColor
- func RandomCardsPermutation(cards []*Card)
- func RandomIntPermutation(values []int)
- func RegisterFunction()
- func SetMostColourfulPlayerCardsAtZeroPlace(pcards []*[]Card) [][]Card
- type Action
- type ActionType
- type AvailablePlayerGameInfo
- type AvailablePlayerGameInfos
- type Card
- func (card *Card) ApplyProbabilities()
- func (card *Card) CheckVisible()
- func (card Card) Copy() Card
- func (card *Card) EmptyProbabilities()
- func (card *Card) GetColors() map[CardColor]string
- func (card *Card) GetCriticality(progress map[CardColor]CardValue, variants map[ColorValue]int) float64
- func (card *Card) GetPlayability(progress map[CardColor]CardValue) float64
- func (card *Card) GetPoints() int
- func (card *Card) GetValues() map[CardValue]string
- func (card *Card) IsCardPlayable(progress map[CardColor]CardValue) bool
- func (card *Card) IsVisible() bool
- func (card *Card) NormalizeProbabilities(color CardColor, value CardValue, countLeft int)
- func (card *Card) SetColor(color CardColor)
- func (card *Card) SetKnown(known bool)
- func (card *Card) SetValue(value CardValue)
- func (card Card) String() string
- func (card *Card) UpdateProbability()
- type CardColor
- type CardProbs
- type CardValue
- type Cards
- type ColorValue
- type Game
- func (game *Game) AppendAction(action *Action, err error) (*Action, error)
- func (game *Game) ApplyAction(action Action) (err error)
- func (game *Game) GetPlayerGameInfo(playerId int, infoType int) PlayerGameInfo
- func (game *Game) GetPlayerPositionById(id int) (pos int, err error)
- func (game *Game) GetPoints() (points int, err error)
- func (game *Game) IsGameOver() bool
- func (game *Game) NewActionDiscard(playerPosition int, cardPosition int) (*Action, error)
- func (game *Game) NewActionInformationColor(playerPosition int, cardColor CardColor) (*Action, error)
- func (game *Game) NewActionInformationValue(playerPosition int, cardValue CardValue) (*Action, error)
- func (game *Game) NewActionPlaying(playerPosition int, cardPosition int) (*Action, error)
- func (game *Game) SprintGame() string
- type GameState
- func (state *GameState) ApplyAction(action *Action) (err error)
- func (state *GameState) Copy() *GameState
- func (state *GameState) GetCardCount() int
- func (state *GameState) GetCardCountByPlayerCount(count int) int
- func (state *GameState) GetPlayerGameInfo(playerId int, infoType int) PlayerGameInfo
- func (state *GameState) GetPlayerGameInfoByPos(playerPosition int, infoType int) PlayerGameInfo
- func (state *GameState) GetPlayerPositionById(id int) (pos int, err error)
- func (state *GameState) GetPoints() (points int, err error)
- func (state *GameState) IncreaseStep()
- func (state *GameState) IsGameOver() bool
- func (state *GameState) NewAction(actionType ActionType, playerPosition int, value int) *Action
- func (state *GameState) NewActionDiscard(playerPosition int, cardPosition int) (*Action, error)
- func (state *GameState) NewActionInformation(playerPosition int, value int, actionType ActionType, ...) (*Action, error)
- func (state *GameState) NewActionInformationColor(playerPosition int, cardColor CardColor) (*Action, error)
- func (state *GameState) NewActionInformationValue(playerPosition int, cardValue CardValue) (*Action, error)
- func (state *GameState) NewActionPlaying(playerPosition int, cardPosition int) (*Action, error)
- func (state *GameState) Sprint() string
- type HashValue
- type Pair
- type Pairs
- type PlayerGameInfo
- func (info *PlayerGameInfo) AvailablePlayerInformations() []*AvailablePlayerGameInfo
- func (info *PlayerGameInfo) Copy() *PlayerGameInfo
- func (info *PlayerGameInfo) GetCardVariants() []Variants
- func (info *PlayerGameInfo) GetDefaultDeck() map[ColorValue]int
- func (info *PlayerGameInfo) GetPlayableCardPositions() []int
- func (info *PlayerGameInfo) GetPoints() int
- func (info *PlayerGameInfo) GetUnplayedCards() map[ColorValue]int
- func (info *PlayerGameInfo) IncreasePosition()
- func (info *PlayerGameInfo) IsCardPlayable(card *Card) bool
- func (info *PlayerGameInfo) IsGameOver() bool
- func (info *PlayerGameInfo) MoveCardFromDeckToPlayer(playerPosition int)
- func (info *PlayerGameInfo) PreviewAction(action *Action) (*ResultPreviewPlayerInformations, error)
- func (info *PlayerGameInfo) PreviewActionDiscard(cardPosition int) (*ResultPreviewPlayerInformations, error)
- func (info *PlayerGameInfo) PreviewActionInformationColor(playerPosition int, cardColor CardColor, canUnknown ...bool) (*ResultPreviewPlayerInformations, error)
- func (info *PlayerGameInfo) PreviewActionInformationValue(playerPosition int, cardValue CardValue, canUnknown ...bool) (*ResultPreviewPlayerInformations, error)
- func (info *PlayerGameInfo) PreviewActionPlaying(cardPosition int) (*ResultPreviewPlayerInformations, error)
- func (info *PlayerGameInfo) SetCard(card *Card, cardVariants []Variants) *CardProbs
- func (info *PlayerGameInfo) SetEasyKnownAboutCards()
- func (info *PlayerGameInfo) SetProbabilities(isCheater, isFullCheater bool)
- func (info *PlayerGameInfo) SetProbabilities_ConvergenceOfProbability(cards Cards, variants []Variants)
- func (info *PlayerGameInfo) SetVariantsCount(isCheater, isFullCheater bool)
- func (info PlayerGameInfo) String() string
- type PlayerState
- type ResultPlayerInfo
- type ResultPreviewPlayerInformations
- type Variants
Constants ¶
View Source
const ( TypeActionInformationColor = iota TypeActionInformationValue TypeActionDiscard TypeActionPlaying )
View Source
const ( NoneColor = iota Red Blue Green Yellow Orange )
View Source
const ( NoneValue = iota One Two Three Four Five )
View Source
const ( Type_NormalGame = iota Type_InfinityGame )
View Source
const ( MaxBlueTokens = 8 MaxRedTokens = 3 )
View Source
const ( InfoTypeUsually = iota InfoTypeCheat InfoTypeFullCheat )
Variables ¶
View Source
var CardCodes map[HashValue]ColorValue
View Source
var ColorsTable = Colors[1:]
View Source
var ValuesTable = Values[1:]
Functions ¶
func CardColorToInt ¶
func GetCardColor ¶
func GetCardValue ¶
func GetTableColorOrder ¶
func RandomCardsPermutation ¶
func RandomCardsPermutation(cards []*Card)
func RandomIntPermutation ¶
func RandomIntPermutation(values []int)
func RegisterFunction ¶
func RegisterFunction()
Types ¶
type Action ¶
type Action struct {
ActionType ActionType `json:"action_type"`
PlayerPosition int `json:"player_position"`
Value int `json:"value"`
}
func (Action) IsInfoAction ¶
type ActionType ¶
type ActionType int
type AvailablePlayerGameInfo ¶
type AvailablePlayerGameInfo struct {
PlayerInfo *PlayerGameInfo
Probability float64
}
type AvailablePlayerGameInfos ¶
type AvailablePlayerGameInfos []*AvailablePlayerGameInfo
func (AvailablePlayerGameInfos) NormalizeProbablities ¶
func (availableInfo AvailablePlayerGameInfos) NormalizeProbablities()
func (AvailablePlayerGameInfos) UpdatePlayerInformation ¶
func (availableInfo AvailablePlayerGameInfos) UpdatePlayerInformation(playerInfo *PlayerGameInfo)
type Card ¶
type Card struct {
Color CardColor `json:"color"`
KnownColor bool `json:"known_color"`
ProbabilityColors map[CardColor]float64 `json:"probability_colors"`
Value CardValue `json:"value"`
KnownValue bool `json:"known_value"`
ProbabilityValues map[CardValue]float64 `json:"probability_values"`
ProbabilityCard map[HashValue]float64 `json:"probability_card"`
}
func DereferenceCard ¶
func (*Card) ApplyProbabilities ¶
func (card *Card) ApplyProbabilities()
func (*Card) CheckVisible ¶
func (card *Card) CheckVisible()
func (*Card) EmptyProbabilities ¶
func (card *Card) EmptyProbabilities()
func (*Card) GetCriticality ¶
func (*Card) GetPlayability ¶
func (*Card) IsCardPlayable ¶
func (*Card) NormalizeProbabilities ¶
func (*Card) UpdateProbability ¶
func (card *Card) UpdateProbability()
type ColorValue ¶
func (ColorValue) String ¶
func (cv ColorValue) String() string
type Game ¶
type Game struct {
PlayerCount int `json:"player_count"`
InitState *GameState `json:"init_state"`
CurrentState *GameState `json:"current_state"`
Actions []Action `json:"actions"`
Seed int64 `json:"seed"`
Points int `json:"points"`
Type int `json:"game_type"`
}
func (*Game) AppendAction ¶
func (*Game) ApplyAction ¶
func (*Game) GetPlayerGameInfo ¶
func (game *Game) GetPlayerGameInfo(playerId int, infoType int) PlayerGameInfo
func (*Game) GetPlayerPositionById ¶
func (*Game) IsGameOver ¶
func (*Game) NewActionDiscard ¶
func (*Game) NewActionInformationColor ¶
func (*Game) NewActionInformationValue ¶
func (*Game) NewActionPlaying ¶
func (*Game) SprintGame ¶
type GameState ¶
type GameState struct {
Deck []Card `json:"deck"`
Round int `json:"round"`
Step int `json:"step"`
BlueTokens int `json:"blue_tokens"`
RedTokens int `json:"red_tokens"`
CurrentPosition int `json:"current_pos"`
UsedCards []Card `json:"used_cards"`
TableCards map[CardColor]Card `json:"table_cards"`
PlayerStates []PlayerState `json:"player_state"`
MaxStep int `json:"max_step"`
GameType int `json:"game_type"`
}
func (*GameState) ApplyAction ¶
func (*GameState) GetCardCount ¶
func (*GameState) GetCardCountByPlayerCount ¶
func (*GameState) GetPlayerGameInfo ¶
func (state *GameState) GetPlayerGameInfo(playerId int, infoType int) PlayerGameInfo
func (*GameState) GetPlayerGameInfoByPos ¶
func (state *GameState) GetPlayerGameInfoByPos(playerPosition int, infoType int) PlayerGameInfo
func (*GameState) GetPlayerPositionById ¶
func (*GameState) IncreaseStep ¶
func (state *GameState) IncreaseStep()
func (*GameState) IsGameOver ¶
func (*GameState) NewAction ¶
func (state *GameState) NewAction(actionType ActionType, playerPosition int, value int) *Action
func (*GameState) NewActionDiscard ¶
func (*GameState) NewActionInformation ¶
func (*GameState) NewActionInformationColor ¶
func (*GameState) NewActionInformationValue ¶
func (*GameState) NewActionPlaying ¶
type PlayerGameInfo ¶
type PlayerGameInfo struct {
MyTurn bool `json:"my_turn"`
CurrentPosition int `json:"current_position"`
PlayerCount int `json:"player_count"`
Position int `json:"pos"`
Step int `json:"step"`
MaxStep int `json:"max_step"`
Round int `json:"round"`
PlayerId int `json:"player_id"`
DeckSize int `json:"deck_size"`
Deck []Card `json:"deck"`
UsedCards []Card `json:"used_cards"`
TableCards map[CardColor]Card `json:"table_cards"`
PlayerCards [][]Card `json:"player_cards"`
PlayerCardsInfo [][]Card `json:"player_cards_info"`
BlueTokens int `json:"blue_tokens"`
RedTokens int `json:"red_tokens"`
Points int `json:"points"`
VariantsCount map[ColorValue]int `json:"-"`
GameType int `json:"game_type"`
HashKey *string `json:"-"`
InfoIsSetted bool `json:"-"`
}
func NewPlayerInfo ¶
func NewPlayerInfo(game *Game, playerId int, infoType int) PlayerGameInfo
func (*PlayerGameInfo) AvailablePlayerInformations ¶
func (info *PlayerGameInfo) AvailablePlayerInformations() []*AvailablePlayerGameInfo
func (*PlayerGameInfo) Copy ¶
func (info *PlayerGameInfo) Copy() *PlayerGameInfo
func (*PlayerGameInfo) GetCardVariants ¶
func (info *PlayerGameInfo) GetCardVariants() []Variants
func (*PlayerGameInfo) GetDefaultDeck ¶
func (info *PlayerGameInfo) GetDefaultDeck() map[ColorValue]int
func (*PlayerGameInfo) GetPlayableCardPositions ¶
func (info *PlayerGameInfo) GetPlayableCardPositions() []int
func (*PlayerGameInfo) GetPoints ¶
func (info *PlayerGameInfo) GetPoints() int
func (*PlayerGameInfo) GetUnplayedCards ¶
func (info *PlayerGameInfo) GetUnplayedCards() map[ColorValue]int
func (*PlayerGameInfo) IncreasePosition ¶
func (info *PlayerGameInfo) IncreasePosition()
func (*PlayerGameInfo) IsCardPlayable ¶
func (info *PlayerGameInfo) IsCardPlayable(card *Card) bool
func (*PlayerGameInfo) IsGameOver ¶
func (info *PlayerGameInfo) IsGameOver() bool
func (*PlayerGameInfo) MoveCardFromDeckToPlayer ¶
func (info *PlayerGameInfo) MoveCardFromDeckToPlayer(playerPosition int)
func (*PlayerGameInfo) PreviewAction ¶
func (info *PlayerGameInfo) PreviewAction(action *Action) (*ResultPreviewPlayerInformations, error)
func (*PlayerGameInfo) PreviewActionDiscard ¶
func (info *PlayerGameInfo) PreviewActionDiscard(cardPosition int) (*ResultPreviewPlayerInformations, error)
func (*PlayerGameInfo) PreviewActionInformationColor ¶
func (info *PlayerGameInfo) PreviewActionInformationColor(playerPosition int, cardColor CardColor, canUnknown ...bool) (*ResultPreviewPlayerInformations, error)
func (*PlayerGameInfo) PreviewActionInformationValue ¶
func (info *PlayerGameInfo) PreviewActionInformationValue(playerPosition int, cardValue CardValue, canUnknown ...bool) (*ResultPreviewPlayerInformations, error)
func (*PlayerGameInfo) PreviewActionPlaying ¶
func (info *PlayerGameInfo) PreviewActionPlaying(cardPosition int) (*ResultPreviewPlayerInformations, error)
func (*PlayerGameInfo) SetCard ¶
func (info *PlayerGameInfo) SetCard(card *Card, cardVariants []Variants) *CardProbs
func (*PlayerGameInfo) SetEasyKnownAboutCards ¶
func (info *PlayerGameInfo) SetEasyKnownAboutCards()
func (*PlayerGameInfo) SetProbabilities ¶
func (info *PlayerGameInfo) SetProbabilities(isCheater, isFullCheater bool)
func (*PlayerGameInfo) SetProbabilities_ConvergenceOfProbability ¶
func (info *PlayerGameInfo) SetProbabilities_ConvergenceOfProbability(cards Cards, variants []Variants)
func (*PlayerGameInfo) SetVariantsCount ¶
func (info *PlayerGameInfo) SetVariantsCount(isCheater, isFullCheater bool)
func (PlayerGameInfo) String ¶
func (info PlayerGameInfo) String() string
type PlayerState ¶
type PlayerState struct {
PlayerId int `json:"player_id"`
PlayerPosition int `json:"pos"`
PlayerCards []Card `json:"player_cards"`
}
func NewPlayerState ¶
func NewPlayerState(cards [][]Card, playerPosition int, playerId int) *PlayerState
func (*PlayerState) Copy ¶
func (state *PlayerState) Copy() PlayerState
type ResultPlayerInfo ¶
type ResultPlayerInfo struct {
Probability float64
Info *PlayerGameInfo
}
type ResultPreviewPlayerInformations ¶
type ResultPreviewPlayerInformations struct {
Action *Action
Max int
Min int
Med float64
Results []*ResultPlayerInfo
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.