import "github.com/yuta-yoshinaga/go_trumpcards/internal/domain/interfaces"BaccaratGame バカラゲームインタフェース
type BaccaratGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// Bet ベットしてゲームを実行する
Bet(amount, betType, ppBet, bpBet int) error
// ClearHistory 罫線履歴をクリアする
ClearHistory()
// GetPlayerHand プレイヤーハンドを取得する
GetPlayerHand() []*domain.Card
// GetBankerHand バンカーハンドを取得する
GetBankerHand() []*domain.Card
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetBetAmount ベット額を取得する
GetBetAmount() int
// GetBetType ベットタイプを取得する
GetBetType() int
// GetResult ゲーム結果を取得する
GetResult() domain.GameResult
// GetPayout 配当金額を取得する
GetPayout() int
// GetChips チップを取得する
GetChips() int
// GetPlayerHandValue プレイヤーハンド合計値を取得する
GetPlayerHandValue() int
// GetBankerHandValue バンカーハンド合計値を取得する
GetBankerHandValue() int
// GetHistory 罫線履歴を取得する
GetHistory() []int
// GetPlayerPairBet プレイヤーペアベット額を取得する
GetPlayerPairBet() int
// GetBankerPairBet バンカーペアベット額を取得する
GetBankerPairBet() int
// GetSideBetResults サイドベット結果を取得する
GetSideBetResults() []*domain.BacSideBetResult
}BaseGame 全ゲーム共通のインタフェース
type BaseGame interface {
// GetActionLog 棋譜を取得する
GetActionLog() []*domain.ActionLogEntry
}BlackJackGame ブラックジャックゲームインタフェース
type BlackJackGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// PlayerBet プレイヤーがベットしてゲームを開始する
PlayerBet(amount, ppBet, t3Bet, handCount int) error
// PlayerInsurance プレイヤーがインシュランスを購入する
PlayerInsurance() error
// PlayerDeclineInsurance プレイヤーがインシュランスを辞退する
PlayerDeclineInsurance() error
// PlayerHit プレイヤーがヒットする
PlayerHit() error
// PlayerStand プレイヤーがスタンドする
PlayerStand() error
// PlayerDoubleDown プレイヤーがダブルダウンする
PlayerDoubleDown() error
// PlayerSplit プレイヤーがスプリットする
PlayerSplit() error
// PlayerSurrender プレイヤーがサレンダーする
PlayerSurrender() error
// PlayerEarlySurrender プレイヤーがアーリーサレンダーする
PlayerEarlySurrender() error
// PlayerDeclineEarlySurrender プレイヤーがアーリーサレンダーを辞退する
PlayerDeclineEarlySurrender() error
// SetDeckCount デッキ数を設定する
SetDeckCount(count int) error
// ToggleHint ヒント表示を切り替える
ToggleHint()
// SetConfig ゲーム設定を変更する
SetConfig(config domain.BlackJackConfig) error
// GetPlayer プレイヤーを取得する
GetPlayer() *domain.BlackJackPlayer
// GetDealer ディーラーを取得する
GetDealer() *domain.BlackJackPlayer
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPlayerHands プレイヤーハンド一覧を取得する
GetPlayerHands() []*domain.BlackJackHand
// GetCurrentHandIdx 現在操作中のハンドインデックスを取得する
GetCurrentHandIdx() int
// GetInsuranceBet インシュランスベット額を取得する
GetInsuranceBet() int
// IsInsuranceAvailable インシュランスが可能かを返す
IsInsuranceAvailable() bool
// GameJudgmentForHand 指定ハンドの勝敗を判定する
GameJudgmentForHand(handIdx int) domain.GameResult
// GameJudgment ゲーム勝敗を判定する
GameJudgment() domain.GameResult
// GetDeckCount デッキ数を取得する
GetDeckCount() int
// IsHintEnabled ヒントが有効かを返す
IsHintEnabled() bool
// GetBasicStrategySuggestion ベーシックストラテジー推奨アクションを取得する
GetBasicStrategySuggestion() domain.BJSuggestedAction
// GetConfig ゲーム設定を取得する
GetConfig() domain.BlackJackConfig
// GetRunningCount ランニングカウントを取得する
GetRunningCount() int
// GetTrueCount トゥルーカウントを取得する
GetTrueCount() float64
// IsCountingEnabled カウンティングが有効かを返す
IsCountingEnabled() bool
// GetCpuPlayers CPUプレイヤー一覧を取得する
GetCpuPlayers() []*domain.BlackJackCpuSeat
// GetSideBetResults サイドベット結果を取得する
GetSideBetResults() []*domain.BJSideBetResult
// GetPerfectPairsBet Perfect Pairsベット額を取得する
GetPerfectPairsBet() int
// Get21Plus3Bet 21+3ベット額を取得する
Get21Plus3Bet() int
// GetDeckPenetration デッキペネトレーション率を取得する
GetDeckPenetration() int
// GetMultiHandCount マルチハンド数を取得する
GetMultiHandCount() int
// CanSurrenderHand 指定ハンドのサレンダー可否を返す
CanSurrenderHand(handIdx int) bool
// CanSurrenderCpuHand CPUハンドのサレンダー可否を返す
CanSurrenderCpuHand(cpuIdx, handIdx int) bool
}BridgeGame ブリッジゲームインタフェース
type BridgeGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerBid 人間プレイヤーがビッドする
PlayerBid(bidType int, level int, suit int) error
// CpuBid CPUプレイヤーがビッドする
CpuBid()
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(cardIndex int) error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// ResolveTrick トリックを解決する
ResolveTrick()
// NextTrick 次のトリックを開始する
NextTrick()
// ScoreRound ラウンドの得点を計算する
ScoreRound()
// GetConfig ゲーム設定を取得する
GetConfig() domain.BridgeConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.BridgeConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.BridgePhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// IsHumanBidTurn 現在のビッド手番が人間かを返す
IsHumanBidTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetTrickNumber 現在のトリック番号を取得する
GetTrickNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetCurrentTrick 現在のトリックを取得する
GetCurrentTrick() []*domain.BridgeTrickCard
// GetLeadPlayerIdx リードプレイヤーインデックスを取得する
GetLeadPlayerIdx() int
// GetBidPlayerIdx ビッドプレイヤーインデックスを取得する
GetBidPlayerIdx() int
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetTrumpSuit 切り札スートを取得する (-1 = NoTrump)
GetTrumpSuit() int
// GetContractLevel コントラクトレベルを取得する
GetContractLevel() int
// GetContractSuit コントラクトスートを取得する
GetContractSuit() int
// GetDoubled ダブル状態を取得する (0=なし, 1=ダブル, 2=リダブル)
GetDoubled() int
// GetDeclarerIdx デクレアラーインデックスを取得する
GetDeclarerIdx() int
// GetDummyIdx ダミーインデックスを取得する
GetDummyIdx() int
// GetBidHistory ビッド履歴を取得する
GetBidHistory() []*domain.BridgeBidEntry
// GetVulnerability バルネラビリティを取得する
GetVulnerability(team int) bool
// GetTeamScore チームスコアを取得する
GetTeamScore(team int) int
// GetGamesWon 勝利ゲーム数を取得する
GetGamesWon(team int) int
// GetBelowLine ライン以下スコアを取得する
GetBelowLine(team int) int
// GetWinnerTeam 勝利チームを取得する
GetWinnerTeam() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.BridgePlayer
// IsOpeningLeadDone オープニングリード完了かを取得する
IsOpeningLeadDone() bool
// GetDummyHand ダミーの手札を取得する
GetDummyHand() []*domain.Card
// GetHint ヒントを取得する
GetHint() *domain.BridgeHint
// GetValidPlayIndices プレイ可能なカードのインデックスリストを返す
GetValidPlayIndices(playerIdx int) []int
}CanastaGame カナスタゲームインタフェース
type CanastaGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerDrawFromStock プレイヤーが山札からカードを引く
PlayerDrawFromStock() error
// PlayerDrawFromDiscard プレイヤーが捨て札の山を取る
PlayerDrawFromDiscard(naturalPairIndices []int) error
// PlayerMeld プレイヤーがメルドを出す
PlayerMeld(meldGroups [][]int) error
// PlayerSkipMeld メルドフェーズをスキップする
PlayerSkipMeld() error
// PlayerDiscard プレイヤーがカードを捨てる
PlayerDiscard(cardIndex int) error
// PlayerGoOut プレイヤーが上がる
PlayerGoOut() error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// GetConfig ゲーム設定を取得する
GetConfig() domain.CanastaConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.CanastaConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.CanastaPhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetDiscardTop 捨て札の一番上のカードを取得する
GetDiscardTop() *domain.Card
// GetDrawPileCount 山札の残り枚数を取得する
GetDrawPileCount() int
// GetDiscardPileCount 捨て札の枚数を取得する
GetDiscardPileCount() int
// GetIsFrozen 捨て札の山がフリーズ状態かを返す
GetIsFrozen() bool
// GetWinnerIdx 勝者インデックスを取得する
GetWinnerIdx() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.CanastaPlayer
// GetDrewFromDiscard 捨て札から引いたかを返す
GetDrewFromDiscard() bool
}ClockSolitaireGame クロックソリティアゲームインタフェース
type ClockSolitaireGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// Step 1ステップ実行する
Step() error
// AutoPlay 自動プレイ(全ステップ実行)
AutoPlay() error
// GetPhase 現在のフェーズを取得する
GetPhase() domain.ClockSolitairePhase
// GetPiles パイルを取得する
GetPiles() [domain.ClockSolitairePileCount][]*domain.ClockSolitaireCard
// GetFaceUpCount 各パイルの表向き枚数を取得する
GetFaceUpCount() [domain.ClockSolitairePileCount]int
// GetStepCount ステップ数を取得する
GetStepCount() int
// GetCurrentCard 現在のカードを取得する
GetCurrentCard() *domain.Card
}CrazyEightsGame クレイジーエイトゲームインタフェース
type CrazyEightsGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(cardIndex int) error
// PlayerChooseSuit プレイヤーがスートを選択する
PlayerChooseSuit(suit int) error
// PlayerDraw プレイヤーが山札からカードを引く
PlayerDraw() error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// CpuChooseSuit CPUプレイヤーがスートを選択する
CpuChooseSuit()
// ScoreRound ラウンドの得点を計算する
ScoreRound()
// GetConfig ゲーム設定を取得する
GetConfig() domain.CrazyEightsConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.CrazyEightsConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.CrazyEightsPhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetDiscardTop 捨て札の一番上のカードを取得する
GetDiscardTop() *domain.Card
// GetDrawPileCount 山札の残り枚数を取得する
GetDrawPileCount() int
// GetChosenSuit 選択されたスートを取得する
GetChosenSuit() int
// GetWinnerIdx 勝者インデックスを取得する
GetWinnerIdx() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.CrazyEightsPlayer
}CribbageGame クリベッジゲームインタフェース
type CribbageGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerDiscard プレイヤーがクリブに2枚捨てる
PlayerDiscard(indices []int) error
// PlayerPeg プレイヤーがペギングでカードを出す
PlayerPeg(cardIndex int) error
// PlayerGo プレイヤーがGoを宣言する
PlayerGo() error
// ShowNext ショーフェーズの次のスコア計算を実行する
ShowNext() error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// GetConfig ゲーム設定を取得する
GetConfig() domain.CribbageConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.CribbageConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.CribbagePhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetWinnerIdx 勝者インデックスを取得する
GetWinnerIdx() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.CribbagePlayer
// GetCrib クリブを取得する
GetCrib() []*domain.Card
// GetStarter スターターカードを取得する
GetStarter() *domain.Card
// GetPegCount ペギングカウントを取得する
GetPegCount() int
// GetPegPlayedCards ペギングで出されたカードを取得する
GetPegPlayedCards() []*domain.Card
// GetShowPhaseStep ショーフェーズのステップを取得する
GetShowPhaseStep() int
// GetHandScoreDetails ハンドスコア詳細を取得する
GetHandScoreDetails() [3]*domain.CribbageScoreDetail
// GetOriginalHand ショーフェーズ用の元の手札を取得する
GetOriginalHand(playerIdx int) []*domain.Card
// GetPlayerPeggedCards プレイヤーがペギングで出したカードを取得する
GetPlayerPeggedCards(playerIdx int) []*domain.Card
}DaifugoGame 大富豪ゲームインタフェース
type DaifugoGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(indices []int) error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// HasPendingAction ペンディングアクションがあるかを返す
HasPendingAction() bool
// SetConfig ゲーム設定をセットする
SetConfig(config domain.DaifugoConfig)
// SortHumanHand 人間の手札を指定モードでソートする
SortHumanHand(mode domain.DaifugoSortMode) error
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.DaifugoPlayer
// GetRevolutionActive 革命が有効かを返す
GetRevolutionActive() bool
// GetElevenBackActive 11バックが有効かを返す
GetElevenBackActive() bool
// GetSuitLocked スート縛りが有効かを返す
GetSuitLocked() bool
// GetLockedSuit 縛りスートを取得する
GetLockedSuit() int
// GetTableIsSequence 場が階段かを返す
GetTableIsSequence() bool
// GetExchangeActions カード交換アクション一覧を取得する
GetExchangeActions() []*domain.DaifugoExchangeAction
// GetTableCards 場のカード一覧を取得する
GetTableCards() []*domain.Card
// GetLastPlayPlayerIdx 最後にカードを出したプレイヤーインデックスを取得する
GetLastPlayPlayerIdx() int
// GetHumanAction 人間の最後の行動記録を取得する
GetHumanAction() *domain.DaifugoCpuAction
// GetCpuActions CPU行動記録一覧を取得する
GetCpuActions() []*domain.DaifugoCpuAction
// GetCurrentTurn 現在の手番プレイヤーインデックスを取得する
GetCurrentTurn() int
// GetConfig ゲーム設定を取得する
GetConfig() domain.DaifugoConfig
// GetPassCount パス回数を取得する
GetPassCount() int
// GetPendingActionType ペンディングアクションの種類を取得する
GetPendingActionType() domain.DaifugoPendingAction
// GetPendingActionTarget ペンディングアクション対象プレイヤーを取得する
GetPendingActionTarget() int
// GetReverseDirection 逆回りかを返す
GetReverseDirection() bool
// GetNumberLocked 数字縛りが有効かを返す
GetNumberLocked() bool
// GetSequenceLocked 階段縛りが有効かを返す
GetSequenceLocked() bool
// GetSortMode 現在のソートモードを取得する
GetSortMode() domain.DaifugoSortMode
}DoubtGame ダウトゲームインタフェース
type DoubtGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(cardIndices []int, claimedValue int, humanPlayMs int) error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// ResolveDoubt ダウト判定を実行する
ResolveDoubt(doubterIndices []int)
// SkipDoubt ダウトをスキップする
SkipDoubt()
// GetConfig ゲーム設定を取得する
GetConfig() domain.DoubtConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.DoubtConfig)
// GetHumanProfile メタAIプロファイルを取得する
GetHumanProfile() *domain.DoubtHumanProfile
// ResetProfile メタAIプロファイルをリセットする
ResetProfile()
// ExportProfile メタAIプロファイルをエクスポートする
ExportProfile() interface{}
// ImportProfile JSONバイトからメタAIプロファイルをインポートする
ImportProfile(data []byte) error
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.DoubtPhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetCurrentTurn 現在の手番プレイヤーインデックスを取得する
GetCurrentTurn() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.DoubtPlayer
// GetTableCardCount 場のカード枚数を取得する
GetTableCardCount() int
// GetTableCards 場のカード一覧を取得する
GetTableCards() []*domain.Card
// GetLastAction 最後のアクション情報を取得する
GetLastAction() *domain.DoubtAction
// GetCpuDoubters CPUダウター一覧を取得する
GetCpuDoubters() []int
// GetWinnerIdx 勝者インデックスを取得する
GetWinnerIdx() int
// GetCpuActions CPU行動記録一覧を取得する
GetCpuActions() []*domain.DoubtCpuAction
// GetHumanAction 人間の最後の行動記録を取得する
GetHumanAction() *domain.DoubtCpuAction
// GetLastDoubtResult 最後のダウト結果を取得する
GetLastDoubtResult() *domain.DoubtDoubtResult
}EuchreGame ユーカーゲームインタフェース
type EuchreGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerPickUp 人間プレイヤーがピックアップ判断する
PlayerPickUp(orderUp bool, goAlone bool) error
// CpuPickUp CPUプレイヤーがピックアップ判断する
CpuPickUp()
// PlayerCallTrump 人間プレイヤーがスートを指名する
PlayerCallTrump(suit int, goAlone bool) error
// PlayerPassCall 人間プレイヤーがコールフェーズでパスする
PlayerPassCall() error
// CpuCallTrump CPUプレイヤーがコールトランプ判断する
CpuCallTrump()
// PlayerDiscard 人間プレイヤー(ディーラー)がカードを1枚捨てる
PlayerDiscard(cardIndex int) error
// CpuDiscard CPUプレイヤー(ディーラー)がカードを1枚捨てる
CpuDiscard()
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(cardIndex int) error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// ResolveTrick トリックを解決する
ResolveTrick()
// NextTrick 次のトリックを開始する
NextTrick()
// ScoreRound ラウンドの得点を計算する
ScoreRound()
// GetConfig ゲーム設定を取得する
GetConfig() domain.EuchreConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.EuchreConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.EuchrePhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// IsHumanBidTurn 現在のビッド手番が人間かを返す
IsHumanBidTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetTrickNumber 現在のトリック番号を取得する
GetTrickNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetCurrentTrick 現在のトリックを取得する
GetCurrentTrick() []*domain.EuchreTrickCard
// GetLeadPlayerIdx リードプレイヤーインデックスを取得する
GetLeadPlayerIdx() int
// GetBidPlayerIdx ビッドプレイヤーインデックスを取得する
GetBidPlayerIdx() int
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetTrumpSuit 切り札スートを取得する
GetTrumpSuit() int
// GetFaceUpCard 表向きカードを取得する
GetFaceUpCard() *domain.Card
// GetMakerTeam メイカーチームを取得する
GetMakerTeam() int
// GetGoingAlone ゴーアローン状態を取得する
GetGoingAlone() bool
// GetGoingAlonePlayerIdx ゴーアローンプレイヤーインデックスを取得する
GetGoingAlonePlayerIdx() int
// GetTeamScore チームスコアを取得する
GetTeamScore(team int) int
// GetWinnerTeam 勝利チームを取得する
GetWinnerTeam() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.EuchrePlayer
// GetKitty キティを取得する
GetKitty() []*domain.Card
// GetHint ヒントを取得する
GetHint() *domain.EuchreHint
// GetValidPlayIndices プレイ可能なカードのインデックスリストを返す
GetValidPlayIndices(playerIdx int) []int
}FreeCellGame フリーセルゲームインタフェース
type FreeCellGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// MoveTableauToTableau タブロー間でカードを移動する
MoveTableauToTableau(fromCol, cardIndex, toCol int) error
// MoveTableauToFoundation タブローからファンデーションにカードを移動する
MoveTableauToFoundation(col int) error
// MoveTableauToFreeCell タブローからフリーセルにカードを移動する
MoveTableauToFreeCell(col, cell int) error
// MoveFreeCellToTableau フリーセルからタブローにカードを移動する
MoveFreeCellToTableau(cell, col int) error
// MoveFreeCellToFoundation フリーセルからファンデーションにカードを移動する
MoveFreeCellToFoundation(cell int) error
// GiveUp ギブアップする
GiveUp()
// GetHint ヒントを取得する
GetHint() *domain.FreeCellHint
// AutoComplete 自動完了を実行する
AutoComplete() error
// Undo 操作を元に戻す
Undo() error
// CanUndo 元に戻す操作が可能かを返す
CanUndo() bool
// UndoToEscape 膠着状態から抜けるために必要なアンドゥ回数を返す
UndoToEscape() int
// UndoN n回連続でアンドゥを実行する
UndoN(n int) error
// GetPhase 現在のフェーズを取得する
GetPhase() domain.FreeCellPhase
// GetMoveCount 移動回数を取得する
GetMoveCount() int
// GetTableau タブローを取得する
GetTableau() [domain.FreeCellTableauCnt][]*domain.Card
// GetFreeCells フリーセルを取得する
GetFreeCells() [domain.FreeCellCellCnt]*domain.Card
// GetFoundation ファンデーションを取得する
GetFoundation() [domain.FreeCellFoundationCnt][]*domain.Card
// IsStalemate 手詰まり状態を取得する
IsStalemate() bool
}GinRummyGame ジンラミーゲームインタフェース
type GinRummyGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerDrawFromStock プレイヤーが山札からカードを引く
PlayerDrawFromStock() error
// PlayerDrawFromDiscard プレイヤーが捨て札からカードを引く
PlayerDrawFromDiscard() error
// PlayerDiscard プレイヤーがカードを捨てる
PlayerDiscard(cardIndex int) error
// PlayerKnock プレイヤーがノックする
PlayerKnock(cardIndex int) error
// PlayerLayoff プレイヤーがレイオフする
PlayerLayoff(cardIndices []int) error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// ScoreRound ラウンドの得点を計算する
ScoreRound()
// GetConfig ゲーム設定を取得する
GetConfig() domain.GinRummyConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.GinRummyConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.GinRummyPhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetDiscardTop 捨て札の一番上のカードを取得する
GetDiscardTop() *domain.Card
// GetDrawPileCount 山札の残り枚数を取得する
GetDrawPileCount() int
// GetWinnerIdx 勝者インデックスを取得する
GetWinnerIdx() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.GinRummyPlayer
// GetKnockerIdx ノックしたプレイヤーインデックスを取得する
GetKnockerIdx() int
// GetKnockerMelds ノッカーのメルド一覧を取得する
GetKnockerMelds() [][]*domain.Card
// GetKnockerDeadwood ノッカーのデッドウッドを取得する
GetKnockerDeadwood() []*domain.Card
// GetIsGin ジンかを返す
GetIsGin() bool
}GoFishGame Go Fishゲームインタフェース
type GoFishGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// SetConfig ゲーム設定をセットする
SetConfig(config domain.GoFishConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// PlayerAsk 人間プレイヤーが相手にランクを要求する
PlayerAsk(targetIdx, rank int) error
// CpuAsk CPUプレイヤーが1回要求を実行する
CpuAsk() error
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.GoFishPlayer
// GetCurrentTurn 現在の手番プレイヤーインデックスを取得する
GetCurrentTurn() int
// GetPhase ゲームフェーズを取得する
GetPhase() domain.GoFishPhase
// GetConfig ゲーム設定を取得する
GetConfig() domain.GoFishConfig
// GetWinnerIdx 勝者プレイヤーインデックスを取得する
GetWinnerIdx() int
// GetTurnNumber 現在のターン番号を取得する
GetTurnNumber() int
// GetDeckRemaining 山札の残り枚数を取得する
GetDeckRemaining() int
// GetLastAskPlayerIdx 最後に要求したプレイヤーのインデックスを取得する
GetLastAskPlayerIdx() int
// GetLastAskTargetIdx 最後に要求された相手のインデックスを取得する
GetLastAskTargetIdx() int
// GetLastAskRank 最後に要求されたランクを取得する
GetLastAskRank() int
// GetLastAskSuccess 最後の要求が成功したかを返す
GetLastAskSuccess() bool
// GetLastCardsReceived 最後に受け取ったカードを取得する
GetLastCardsReceived() []*domain.Card
// GetLastDrawnCard 最後にGo Fishで引いたカードを取得する
GetLastDrawnCard() *domain.Card
// GetLastBookFormed 最後のアクションでブックが完成したかを返す
GetLastBookFormed() bool
// GetLastBookRank 最後に完成したブックのランクを取得する
GetLastBookRank() int
// GetCpuActions CPUターンの行動履歴を取得する
GetCpuActions() []*domain.GoFishCpuAction
// GetHumanAction 人間の最後の行動記録を取得する
GetHumanAction() *domain.GoFishCpuAction
}GolfGame ゴルフソリティアゲームインタフェース
type GolfGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// Draw 山札からカードをめくる
Draw() error
// Remove タブローのカードを除去する
Remove(col int) error
// GiveUp ギブアップする
GiveUp()
// GetHint ヒントを取得する
GetHint() *domain.GolfHint
// Undo 操作を元に戻す
Undo() error
// CanUndo 元に戻す操作が可能かを返す
CanUndo() bool
// UndoToEscape 膠着状態から抜けるために必要なアンドゥ回数を返す
UndoToEscape() int
// UndoN n回連続でアンドゥを実行する
UndoN(n int) error
// GetPhase 現在のフェーズを取得する
GetPhase() domain.GolfPhase
// GetMoveCount 移動回数を取得する
GetMoveCount() int
// GetStockCount 山札の残り枚数を取得する
GetStockCount() int
// GetWaste ウェイストのカード一覧を取得する
GetWaste() []*domain.Card
// GetLayout レイアウトを取得する
GetLayout() [domain.GolfColCnt][domain.GolfRowCnt]*domain.GolfCard
// IsExposed カードが露出しているかを返す
IsExposed(col, row int) bool
// AllRemoved 全タブローカードが除去されたかを返す
AllRemoved() bool
// IsStalemate 手詰まり状態を取得する
IsStalemate() bool
}HeartsGame ハーツゲームインタフェース
type HeartsGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerPass プレイヤーがカードをパスする
PlayerPass(cardIndices []int) error
// CpuPass CPUプレイヤーがカードをパスする
CpuPass()
// ExecutePass パス交換を実行する
ExecutePass()
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(cardIndex int) error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// ResolveTrick トリックを解決する
ResolveTrick()
// NextTrick 次のトリックを開始する
NextTrick()
// ScoreRound ラウンドの得点を計算する
ScoreRound()
// GetConfig ゲーム設定を取得する
GetConfig() domain.HeartsConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.HeartsConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.HeartsPhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetTrickNumber 現在のトリック番号を取得する
GetTrickNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetCurrentTrick 現在のトリックを取得する
GetCurrentTrick() []*domain.HeartsTrickCard
// GetHeartsBroken ハーツブレイク済みかを返す
GetHeartsBroken() bool
// GetPassDirection パス方向を取得する
GetPassDirection() domain.HeartsPassDirection
// GetLeadPlayerIdx リードプレイヤーインデックスを取得する
GetLeadPlayerIdx() int
// GetWinnerIdx 勝者インデックスを取得する
GetWinnerIdx() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.HeartsPlayer
// GetPassReady 各プレイヤーのパス準備状態を取得する
GetPassReady() [domain.HeartsPlayerCnt]bool
// GetPassedCards 各プレイヤーのパスしたカードを取得する
GetPassedCards() [domain.HeartsPlayerCnt][]*domain.Card
// GetHint ヒントを取得する
GetHint() *domain.HeartsHint
}HoldemGame テキサスホールデムゲームインタフェース
type HoldemGame interface {
BaseGame
// Reset ゲームを初期化する
Reset() error
// PlayerAction プレイヤーのベッティングアクションを実行する
// humanPlayMs: 迷い時間(ms, 0=計測なし)
PlayerAction(action, amount, humanPlayMs int) error
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetPlayers プレイヤー一覧を取得する
GetPlayers() []*domain.HoldemPlayer
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.HoldemPlayer
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetCommunityCards コミュニティカードを取得する
GetCommunityCards() []*domain.Card
// GetPot ポット額を取得する
GetPot() int
// GetSidePots サイドポット一覧を取得する
GetSidePots() []domain.HoldemSidePot
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetCurrentTurn 現在のターンを取得する
GetCurrentTurn() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetLastBet 最後のベット額を取得する
GetLastBet() int
// GetMinRaise 最小レイズ額を取得する
GetMinRaise() int
// GetRaiseCount 現在のレイズ回数を取得する
GetRaiseCount() int
// GetRoundResults ラウンド結果を取得する
GetRoundResults() []domain.HoldemResult
// GetCpuActions CPU行動記録を取得する
GetCpuActions() []domain.HoldemCpuAction
// GetConfig ゲーム設定を取得する
GetConfig() domain.HoldemConfig
// SetConfig ゲーム設定を変更する
SetConfig(cfg domain.HoldemConfig)
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetActedFlags 各プレイヤーのアクション済みフラグを取得する
GetActedFlags() []bool
// GetHandCount ハンド数を取得する
GetHandCount() int
// Resize プレイヤー数を変更する
Resize(players []*domain.HoldemPlayer)
TournamentActionGame
// GetHumanProfile メタAIプロファイルを取得する
GetHumanProfile() *domain.BettingHumanProfile
// ResetProfile メタAIプロファイルをリセットする
ResetProfile()
// ExportProfile メタAIプロファイルをエクスポートする
ExportProfile() interface{}
// ImportProfile JSONバイトからメタAIプロファイルをインポートする
ImportProfile(data []byte) error
// GetEquity エクイティ計算結果を取得する
GetEquity() *domain.HoldemEquityResult
// GetPotOdds ポットオッズを取得する
GetPotOdds() float64
}IndianPokerGame インディアンポーカーゲームインタフェース
type IndianPokerGame interface {
BaseGame
// Reset ゲームを初期化する
Reset() error
// PlayerAction プレイヤーのベッティングアクションを実行する
// humanPlayMs: 迷い時間(ms, 0=計測なし)
PlayerAction(action, amount, humanPlayMs int) error
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetPlayers プレイヤー一覧を取得する
GetPlayers() []*domain.IndianPokerPlayer
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.IndianPokerPlayer
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPot ポット額を取得する
GetPot() int
// GetSidePots サイドポット一覧を取得する
GetSidePots() []domain.IndianPokerSidePot
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetCurrentTurn 現在のターンを取得する
GetCurrentTurn() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetLastBet 最後のベット額を取得する
GetLastBet() int
// GetMinRaise 最小レイズ額を取得する
GetMinRaise() int
// GetRaiseCount 現在のレイズ回数を取得する
GetRaiseCount() int
// GetRoundResults ラウンド結果を取得する
GetRoundResults() []domain.IndianPokerResult
// GetCpuActions CPU行動記録を取得する
GetCpuActions() []domain.IndianPokerCpuAction
// GetConfig ゲーム設定を取得する
GetConfig() domain.IndianPokerConfig
// SetConfig ゲーム設定を変更する
SetConfig(cfg domain.IndianPokerConfig)
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetActedFlags 各プレイヤーのアクション済みフラグを取得する
GetActedFlags() []bool
// GetHandCount ハンド数を取得する
GetHandCount() int
// GetHumanProfile メタAIプロファイルを取得する
GetHumanProfile() *domain.IndianPokerHumanProfile
// ResetProfile メタAIプロファイルをリセットする
ResetProfile()
// ExportProfile メタAIプロファイルをエクスポートする
ExportProfile() interface{}
// ImportProfile JSONバイトからメタAIプロファイルをインポートする
ImportProfile(data []byte) error
}KlondikeGame クロンダイクゲームインタフェース
type KlondikeGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// ResetWithConfig 指定設定でゲームを初期化する
ResetWithConfig(cfg domain.KlondikeConfig)
// Draw 山札からカードをめくる
Draw() error
// MoveWasteToTableau ウェイストからタブローにカードを移動する
MoveWasteToTableau(col int) error
// MoveWasteToFoundation ウェイストからファンデーションにカードを移動する
MoveWasteToFoundation() error
// MoveTableauToTableau タブロー間でカードを移動する
MoveTableauToTableau(fromCol, cardIndex, toCol int) error
// MoveTableauToFoundation タブローからファンデーションにカードを移動する
MoveTableauToFoundation(col int) error
// GiveUp ギブアップする
GiveUp()
// GetHint ヒントを取得する
GetHint() *domain.KlondikeHint
// AutoComplete 自動完了を実行する
AutoComplete() error
// Undo 操作を元に戻す
Undo() error
// CanUndo 元に戻す操作が可能かを返す
CanUndo() bool
// UndoToEscape 膠着状態から抜けるために必要なアンドゥ回数を返す
UndoToEscape() int
// UndoN n回連続でアンドゥを実行する
UndoN(n int) error
// GetPhase 現在のフェーズを取得する
GetPhase() domain.KlondikePhase
// GetMoveCount 移動回数を取得する
GetMoveCount() int
// GetStockCount 山札の残り枚数を取得する
GetStockCount() int
// GetWaste ウェイストのカード一覧を取得する
GetWaste() []*domain.Card
// GetTableau タブローを取得する
GetTableau() [domain.KlondikeTableauCnt][]*domain.KlondikeTableauCard
// GetFoundation ファンデーションを取得する
GetFoundation() [domain.KlondikeFoundationCnt][]*domain.Card
// AllFaceUp 全カードが表向きかを返す
AllFaceUp() bool
// GetDrawCount ドロー枚数設定を取得する
GetDrawCount() int
// GetScore 現在のスコアを取得する
GetScore() int
// GetScoringMode スコアリングモードを取得する
GetScoringMode() domain.KlondikeScoringMode
// IsStalemate 手詰まり状態を取得する
IsStalemate() bool
}MemoryGame 神経衰弱ゲームインタフェース
type MemoryGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// PlayerFlip プレイヤーがカードをめくる
PlayerFlip(pos int) error
// CpuFlip CPUプレイヤーがカードをめくる
CpuFlip()
// ResolveFlip めくり結果を判定する
ResolveFlip()
// GetConfig ゲーム設定を取得する
GetConfig() domain.MemoryConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.MemoryConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.MemoryPhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetFirstFlipPos 1枚目のめくり位置を取得する
GetFirstFlipPos() int
// GetSecondFlipPos 2枚目のめくり位置を取得する
GetSecondFlipPos() int
// GetLastMatchResult 最後のめくりがマッチしたかを返す
GetLastMatchResult() bool
// GetTurnNumber 現在のターン番号を取得する
GetTurnNumber() int
// GetWinnerIdx 勝者インデックスを取得する
GetWinnerIdx() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.MemoryPlayer
// GetBoard ボード全体を取得する
GetBoard() [domain.MemoryBoardSize]*domain.MemoryBoardCard
// GetBoardCard 指定位置のボードカードを取得する
GetBoardCard(pos int) *domain.MemoryBoardCard
}NapoleonGame ナポレオンゲームインタフェース
type NapoleonGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerBid プレイヤーがビッドする (0 = パス)
PlayerBid(bid int) error
// CpuBid CPUプレイヤーがビッドする
CpuBid()
// PlayerDeclareTrump 切り札と副官を宣言する
PlayerDeclareTrump(suit int, adjSuit int, adjVal int) error
// CpuDeclareTrump CPUナポレオンが切り札と副官を宣言する
CpuDeclareTrump()
// PlayerExchangeKitty 場札を交換する
PlayerExchangeKitty(discardIndex int) error
// CpuExchangeKitty CPUナポレオンが場札を交換する
CpuExchangeKitty()
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(cardIndex int) error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// ResolveTrick トリックを解決する
ResolveTrick()
// NextTrick 次のトリックを開始する
NextTrick()
// ScoreRound ラウンドの得点を計算する
ScoreRound()
// GetConfig ゲーム設定を取得する
GetConfig() domain.NapoleonConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.NapoleonConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.NapoleonPhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// IsHumanBidTurn 現在のビッド手番が人間かを返す
IsHumanBidTurn() bool
// IsHumanDeclareTurn 切り札宣言が人間の番かを返す
IsHumanDeclareTurn() bool
// IsHumanExchangeTurn 場札交換が人間の番かを返す
IsHumanExchangeTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetTrickNumber 現在のトリック番号を取得する
GetTrickNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetCurrentTrick 現在のトリックを取得する
GetCurrentTrick() []*domain.NapoleonTrickCard
// GetTrumpSuit 切り札スートを取得する
GetTrumpSuit() int
// GetAdjutantCard 副官カードを取得する
GetAdjutantCard() *domain.Card
// GetNapoleonIdx ナポレオンインデックスを取得する
GetNapoleonIdx() int
// GetAdjutantIdx 副官インデックスを取得する
GetAdjutantIdx() int
// GetAdjutantRevealed 副官公開状態を取得する
GetAdjutantRevealed() bool
// GetLeadPlayerIdx リードプレイヤーインデックスを取得する
GetLeadPlayerIdx() int
// GetBidPlayerIdx ビッドプレイヤーインデックスを取得する
GetBidPlayerIdx() int
// GetKitty 場札を取得する
GetKitty() []*domain.Card
// GetHighestBid 最高ビッドを取得する
GetHighestBid() int
// GetHighestBidder 最高ビッドプレイヤーを取得する
GetHighestBidder() int
// GetWinnerTeam 勝利チームを取得する
GetWinnerTeam() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.NapoleonPlayer
// GetValidPlayIndices プレイ可能なカードインデックスを取得する
GetValidPlayIndices(playerIdx int) []int
// GetHint ヒントを取得する
GetHint() *domain.NapoleonHint
}OhHellGame オー・ヘルゲームインタフェース
type OhHellGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerBid プレイヤーがビッドする
PlayerBid(bid int) error
// CpuBid CPUプレイヤーがビッドする
CpuBid()
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(cardIndex int) error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// ResolveTrick トリックを解決する
ResolveTrick()
// NextTrick 次のトリックを開始する
NextTrick()
// ScoreRound ラウンドの得点を計算する
ScoreRound()
// GetConfig ゲーム設定を取得する
GetConfig() domain.OhHellConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.OhHellConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.OhHellPhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// IsHumanBidTurn 現在のビッド手番が人間かを返す
IsHumanBidTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetTotalRounds 総ラウンド数を取得する
GetTotalRounds() int
// GetHandSize 現在のラウンドの手札枚数を取得する
GetHandSize() int
// GetTrickNumber 現在のトリック番号を取得する
GetTrickNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetCurrentTrick 現在のトリックを取得する
GetCurrentTrick() []*domain.OhHellTrickCard
// GetTrumpCard 切り札カードを取得する
GetTrumpCard() *domain.Card
// GetTrumpSuit 切り札スートを取得する (-1 = 切り札なし)
GetTrumpSuit() int
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetLeadPlayerIdx リードプレイヤーインデックスを取得する
GetLeadPlayerIdx() int
// GetBidPlayerIdx ビッドプレイヤーインデックスを取得する
GetBidPlayerIdx() int
// GetRestrictedBid ディーラーが選択できないビッド値を返す (-1 = 制限なし)
GetRestrictedBid() int
// GetWinnerIdx 勝者インデックスを取得する
GetWinnerIdx() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.OhHellPlayer
// GetValidPlayIndices プレイ可能なカードのインデックスリストを返す
GetValidPlayIndices(playerIdx int) []int
// GetHint ヒントを取得する
GetHint() *domain.OhHellHint
}OldMaidGame ババ抜きゲームインタフェース
type OldMaidGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// SetConfig ゲーム設定をセットする
SetConfig(config domain.OldMaidConfig)
// ArrangeTargetForHumanDraw 人間が引く前にCPU心理戦の配置を行う
ArrangeTargetForHumanDraw()
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// PlayerDraw 人間プレイヤーがカードを引く
PlayerDraw(cardIdx int) error
// CpuDraw CPUプレイヤーが1ターン実行する
CpuDraw() error
// ShuffleHumanHand 人間の手札をシャッフルする
ShuffleHumanHand() error
// ReorderHumanHand 人間の手札を指定順に並び替える
ReorderHumanHand(indices []int) error
// GetHumanProfile メタAIプロファイルを取得する
GetHumanProfile() *domain.OldMaidHumanProfile
// ResetProfile メタAIプロファイルをリセットする
ResetProfile()
// ExportProfile メタAIプロファイルをエクスポートする
ExportProfile() interface{}
// ImportProfile JSONバイトからメタAIプロファイルをインポートする
ImportProfile(data []byte) error
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.OldMaidPlayer
// GetHasDrawn 引きが発生したかを返す
GetHasDrawn() bool
// GetLastDrawPlayerIdx 最後に引いたプレイヤーのインデックスを取得する
GetLastDrawPlayerIdx() int
// GetLastDrawFromIdx 最後に引いた相手のインデックスを取得する
GetLastDrawFromIdx() int
// GetLastDrawCard 最後に引いたカードを取得する
GetLastDrawCard() *domain.Card
// GetLastDiscardedPairs 最後に捨てたペア数を取得する
GetLastDiscardedPairs() int
// GetLastDiscardedCards 最後に捨てたカードを取得する
GetLastDiscardedCards() []*domain.Card
// GetCpuActions CPUターンの行動履歴を取得する
GetCpuActions() []*domain.OldMaidCpuAction
// GetHumanAction 人間の最後の行動記録を取得する
GetHumanAction() *domain.OldMaidCpuAction
// GetDrawHistory ゲーム全体の引き履歴を取得する
GetDrawHistory() []*domain.OldMaidDrawHistoryEntry
// GetLoserIdx 負けプレイヤーインデックスを取得する
GetLoserIdx() int
// GetCurrentTurn 現在の手番プレイヤーインデックスを取得する
GetCurrentTurn() int
// GetNextDrawTargetIdx 次の引き相手のインデックスを取得する
GetNextDrawTargetIdx() int
// GetConfig ゲーム設定を取得する
GetConfig() domain.OldMaidConfig
// GetRemovedCard ジジ抜きで除外されたカードを取得する
GetRemovedCard() *domain.Card
// GetCpuHighlightedCardIdx CPU心理戦で強調された位置を取得する
GetCpuHighlightedCardIdx() int
}OmahaGame オマハホールデムゲームインタフェース
type OmahaGame interface {
BaseGame
// Reset ゲームを初期化する
Reset() error
// PlayerAction プレイヤーのベッティングアクションを実行する
// humanPlayMs: 迷い時間(ms, 0=計測なし)
PlayerAction(action, amount, humanPlayMs int) error
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetPlayers プレイヤー一覧を取得する
GetPlayers() []*domain.OmahaPlayer
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.OmahaPlayer
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetCommunityCards コミュニティカードを取得する
GetCommunityCards() []*domain.Card
// GetPot ポット額を取得する
GetPot() int
// GetSidePots サイドポット一覧を取得する
GetSidePots() []domain.OmahaSidePot
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetCurrentTurn 現在のターンを取得する
GetCurrentTurn() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetLastBet 最後のベット額を取得する
GetLastBet() int
// GetMinRaise 最小レイズ額を取得する
GetMinRaise() int
// GetRaiseCount 現在のレイズ回数を取得する
GetRaiseCount() int
// GetRoundResults ラウンド結果を取得する
GetRoundResults() []domain.OmahaResult
// GetCpuActions CPU行動記録を取得する
GetCpuActions() []domain.OmahaCpuAction
// GetConfig ゲーム設定を取得する
GetConfig() domain.OmahaConfig
// SetConfig ゲーム設定を変更する
SetConfig(cfg domain.OmahaConfig)
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetActedFlags 各プレイヤーのアクション済みフラグを取得する
GetActedFlags() []bool
// GetHandCount ハンド数を取得する
GetHandCount() int
// Resize プレイヤー数を変更する
Resize(players []*domain.OmahaPlayer)
TournamentActionGame
// GetHumanProfile メタAIプロファイルを取得する
GetHumanProfile() *domain.BettingHumanProfile
// ResetProfile メタAIプロファイルをリセットする
ResetProfile()
// ExportProfile メタAIプロファイルをエクスポートする
ExportProfile() interface{}
// ImportProfile JSONバイトからメタAIプロファイルをインポートする
ImportProfile(data []byte) error
// GetEquity エクイティ計算結果を取得する
GetEquity() *domain.HoldemEquityResult
// GetPotOdds ポットオッズを取得する
GetPotOdds() float64
}PigsTailGame ぶたのしっぽゲームインタフェース
type PigsTailGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// SetConfig ゲーム設定をセットする
SetConfig(config domain.PigsTailConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// PlayerAction 人間プレイヤーのアクション (山札から1枚引く)
PlayerAction(actionIdx int) error
// CpuAction CPUプレイヤーが1ターン実行する
CpuAction() error
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.PigsTailPlayer
// GetCurrentTurn 現在の手番プレイヤーインデックスを取得する
GetCurrentTurn() int
// GetLoserIdx 負けプレイヤーインデックスを取得する
GetLoserIdx() int
// GetLastDrawCard 最後に引いたカードを取得する
GetLastDrawCard() *domain.Card
// GetLastPenalty 最後のアクションでペナルティが発生したかを取得する
GetLastPenalty() bool
// GetCpuActions CPUターンの行動履歴を取得する
GetCpuActions() []*domain.PigsTailCpuAction
// GetHumanAction 人間の最後の行動記録を取得する
GetHumanAction() *domain.PigsTailCpuAction
// GetCircleCount 山札の残り枚数を取得する
GetCircleCount() int
// GetCenter 中央の場札を取得する
GetCenter() []*domain.Card
// GetCenterTopCard 場札の一番上のカードを取得する
GetCenterTopCard() *domain.Card
// GetConfig ゲーム設定を取得する
GetConfig() domain.PigsTailConfig
}PineappleGame パイナップルポーカーゲームインタフェース
type PineappleGame interface {
BaseGame
// Reset ゲームを初期化する
Reset() error
// PlayerAction プレイヤーのベッティングアクションを実行する
// humanPlayMs: 迷い時間(ms, 0=計測なし)
PlayerAction(action, amount, humanPlayMs int) error
// DiscardCard 人間プレイヤーが手札から1枚をディスカードする
DiscardCard(cardIdx int) error
// IsDiscardPhase ディスカードフェーズかどうか
IsDiscardPhase() bool
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetPlayers プレイヤー一覧を取得する
GetPlayers() []*domain.PineapplePlayer
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.PineapplePlayer
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetCommunityCards コミュニティカードを取得する
GetCommunityCards() []*domain.Card
// GetPot ポット額を取得する
GetPot() int
// GetSidePots サイドポット一覧を取得する
GetSidePots() []domain.PineappleSidePot
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetCurrentTurn 現在のターンを取得する
GetCurrentTurn() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetLastBet 最後のベット額を取得する
GetLastBet() int
// GetMinRaise 最小レイズ額を取得する
GetMinRaise() int
// GetRaiseCount 現在のレイズ回数を取得する
GetRaiseCount() int
// GetRoundResults ラウンド結果を取得する
GetRoundResults() []domain.PineappleResult
// GetCpuActions CPU行動記録を取得する
GetCpuActions() []domain.PineappleCpuAction
// GetConfig ゲーム設定を取得する
GetConfig() domain.PineappleConfig
// SetConfig ゲーム設定を変更する
SetConfig(cfg domain.PineappleConfig)
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetActedFlags 各プレイヤーのアクション済みフラグを取得する
GetActedFlags() []bool
// GetHandCount ハンド数を取得する
GetHandCount() int
// Resize プレイヤー数を変更する
Resize(players []*domain.PineapplePlayer)
// GetDiscardDone ディスカード済みフラグ取得
GetDiscardDone() []bool
TournamentActionGame
// GetHumanProfile メタAIプロファイルを取得する
GetHumanProfile() *domain.BettingHumanProfile
// ResetProfile メタAIプロファイルをリセットする
ResetProfile()
// ExportProfile メタAIプロファイルをエクスポートする
ExportProfile() interface{}
// ImportProfile JSONバイトからメタAIプロファイルをインポートする
ImportProfile(data []byte) error
// GetEquity エクイティ計算結果を取得する
GetEquity() *domain.HoldemEquityResult
// GetPotOdds ポットオッズを取得する
GetPotOdds() float64
}PinochleGame ピノクルゲームインタフェース
type PinochleGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerBid 人間プレイヤーがビッドする
PlayerBid(amount int) error
// PlayerPass 人間プレイヤーがパスする
PlayerPass() error
// CpuBid CPUがビッドまたはパスする
CpuBid()
// PlayerCallTrump 人間プレイヤーがトランプスートを宣言する
PlayerCallTrump(suit int) error
// CpuCallTrump CPUがトランプを宣言する
CpuCallTrump()
// ConfirmMelds メルドを確認してプレイフェーズに進む
ConfirmMelds()
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(cardIndex int) error
// CpuPlay CPUがカードをプレイする
CpuPlay()
// ResolveTrick トリックを解決する
ResolveTrick()
// NextTrick 次のトリックを開始する
NextTrick()
// GetConfig ゲーム設定を取得する
GetConfig() domain.PinochleConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.PinochleConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.PinochlePhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// IsHumanBidTurn 現在のビッド手番が人間かを返す
IsHumanBidTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetTrickNumber 現在のトリック番号を取得する
GetTrickNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetCurrentTrick 現在のトリックを取得する
GetCurrentTrick() []*domain.PinochleTrickCard
// GetLeadPlayerIdx リードプレイヤーインデックスを取得する
GetLeadPlayerIdx() int
// GetBidPlayerIdx ビッドプレイヤーインデックスを取得する
GetBidPlayerIdx() int
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetTrumpSuit 切り札スートを取得する
GetTrumpSuit() int
// GetHighestBid 最高ビッド額を取得する
GetHighestBid() int
// GetHighestBidder 最高ビッダーインデックスを取得する
GetHighestBidder() int
// GetTeamScore チームスコアを取得する
GetTeamScore(team int) int
// GetWinnerTeam 勝利チームを取得する
GetWinnerTeam() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.PinochlePlayer
// GetPlayerMelds プレイヤーのメルドを取得する
GetPlayerMelds() [domain.PinochlePlayerCnt][]*domain.PinochleMeld
// GetHint ヒントを取得する
GetHint() *domain.PinochleHint
// GetValidPlayIndices プレイ可能なカードのインデックスリストを返す
GetValidPlayIndices(playerIdx int) []int
// SortHand 手札をソートする
SortHand(playerIdx int)
}PokerGame ポーカーゲームインタフェース (マルチプレイヤー)
type PokerGame interface {
BaseGame
// Reset ゲームを初期化する
Reset() error
// PlayerAction プレイヤーのベッティングアクションを実行する
// humanPlayMs: 迷い時間(ms, 0=計測なし)
PlayerAction(action, amount, humanPlayMs int) error
// PlayerExchange プレイヤーのカード交換を実行する
PlayerExchange(indices []int) error
// PlayerStand カード交換なしで続行する
PlayerStand() error
// CalcDrawOdds 交換候補に基づくドローオッズを計算する
CalcDrawOdds(indices []int) ([]domain.PokerDrawOdds, error)
// GetPlayers プレイヤー一覧を取得する
GetPlayers() []*domain.PokerPlayer
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetPot ポット額を取得する
GetPot() int
// GetSidePots サイドポット一覧を取得する
GetSidePots() []domain.PokerSidePot
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetCurrentTurn 現在のターンを取得する
GetCurrentTurn() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetLastBet 最後のベット額を取得する
GetLastBet() int
// GetMinRaise 最小レイズ額を取得する
GetMinRaise() int
// GetRaiseCount 現在のレイズ回数を取得する
GetRaiseCount() int
// GetAnte アンティ額を取得する
GetAnte() int
// GetRoundResults ラウンド結果を取得する
GetRoundResults() []domain.PokerResult
// GetCpuActions CPU行動記録を取得する
GetCpuActions() []domain.PokerCpuAction
// GetCpuExchanges CPU交換記録を取得する
GetCpuExchanges() []domain.PokerCpuExchange
// GetConfig ゲーム設定を取得する
GetConfig() domain.PokerConfig
// SetConfig ゲーム設定を変更する
SetConfig(cfg domain.PokerConfig)
// GetHumanProfile メタAIプロファイルを取得する
GetHumanProfile() *domain.BettingHumanProfile
// ResetProfile メタAIプロファイルをリセットする
ResetProfile()
// ExportProfile メタAIプロファイルをエクスポートする
ExportProfile() interface{}
// ImportProfile JSONバイトからメタAIプロファイルをインポートする
ImportProfile(data []byte) error
}PyramidGame ピラミッドゲームインタフェース
type PyramidGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// Draw 山札からカードをめくる
Draw() error
// RemovePair ピラミッド上の2枚を合計13で除去する
RemovePair(row1, col1, row2, col2 int) error
// RemoveKing ピラミッド上のKを単独除去する
RemoveKing(row, col int) error
// RemoveWithWaste ウェイストとピラミッドのカードをペアで除去する
RemoveWithWaste(row, col int) error
// RemoveWasteKing ウェイストのKを単独除去する
RemoveWasteKing() error
// GiveUp ギブアップする
GiveUp()
// GetHint ヒントを取得する
GetHint() *domain.PyramidHint
// Undo 操作を元に戻す
Undo() error
// CanUndo 元に戻す操作が可能かを返す
CanUndo() bool
// UndoToEscape 膠着状態から抜けるために必要なアンドゥ回数を返す
UndoToEscape() int
// UndoN n回連続でアンドゥを実行する
UndoN(n int) error
// GetPhase 現在のフェーズを取得する
GetPhase() domain.PyramidPhase
// GetMoveCount 移動回数を取得する
GetMoveCount() int
// GetStockCount 山札の残り枚数を取得する
GetStockCount() int
// GetWaste ウェイストのカード一覧を取得する
GetWaste() []*domain.Card
// GetPyramid ピラミッドを取得する
GetPyramid() [domain.PyramidRowCnt][]*domain.PyramidCard
// IsExposed カードが露出しているかを返す
IsExposed(row, col int) bool
// AllRemoved 全ピラミッドカードが除去されたかを返す
AllRemoved() bool
// IsStalemate 手詰まり状態を取得する
IsStalemate() bool
}SevenCardStudGame セブンカードスタッドゲームインタフェース
type SevenCardStudGame interface {
BaseGame
// Reset ゲームを初期化する
Reset() error
// PlayerAction プレイヤーのベッティングアクションを実行する
PlayerAction(action, amount, humanPlayMs int) error
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetPlayers プレイヤー一覧を取得する
GetPlayers() []*domain.SevenCardStudPlayer
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.SevenCardStudPlayer
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetCommunityCard 共有カードを取得する (カード不足時のみ)
GetCommunityCard() *domain.Card
// GetPot ポット額を取得する
GetPot() int
// GetSidePots サイドポット一覧を取得する
GetSidePots() []domain.SevenCardStudSidePot
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetCurrentTurn 現在のターンを取得する
GetCurrentTurn() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetLastBet 最後のベット額を取得する
GetLastBet() int
// GetMinRaise 最小レイズ額を取得する
GetMinRaise() int
// GetRaiseCount 現在のレイズ回数を取得する
GetRaiseCount() int
// GetRoundResults ラウンド結果を取得する
GetRoundResults() []domain.SevenCardStudResult
// GetCpuActions CPU行動記録を取得する
GetCpuActions() []domain.SevenCardStudCpuAction
// GetConfig ゲーム設定を取得する
GetConfig() domain.SevenCardStudConfig
// SetConfig ゲーム設定を変更する
SetConfig(cfg domain.SevenCardStudConfig)
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetActedFlags 各プレイヤーのアクション済みフラグを取得する
GetActedFlags() []bool
// GetHandCount ハンド数を取得する
GetHandCount() int
// Resize プレイヤー数を変更する
Resize(players []*domain.SevenCardStudPlayer)
TournamentActionGame
// GetHumanProfile メタAIプロファイルを取得する
GetHumanProfile() *domain.BettingHumanProfile
// ResetProfile メタAIプロファイルをリセットする
ResetProfile()
// ExportProfile メタAIプロファイルをエクスポートする
ExportProfile() interface{}
// ImportProfile JSONバイトからメタAIプロファイルをインポートする
ImportProfile(data []byte) error
// GetBringInPlayerIdx ブリングインプレイヤーインデックスを取得する
GetBringInPlayerIdx() int
}SevensGame 7並べゲームインタフェース
type SevensGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// SetConfig ゲーム設定をセットする
SetConfig(config domain.SevensConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// HasAnyOption 指定プレイヤーが出せるカードまたはパスが可能かを返す
HasAnyOption(playerIdx int) bool
// AutoHandleNoOption 出せるカードもパスも不可の場合の自動処理
AutoHandleNoOption()
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(idx int) error
// PlayerPlayJoker プレイヤーがジョーカーを使って指定位置にカードを配置する
PlayerPlayJoker(cardIdx, targetSuit, targetValue int) error
// GetCurrentTurn 現在の手番プレイヤーインデックスを取得する
GetCurrentTurn() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.SevensPlayer
// GetConfig ゲーム設定を取得する
GetConfig() domain.SevensConfig
// GetTableMinVals 各スートの最小配置値を取得する
GetTableMinVals() [5]int
// GetTableMaxVals 各スートの最大配置値を取得する
GetTableMaxVals() [5]int
// GetHumanAction 人間の最後の行動記録を取得する
GetHumanAction() *domain.SevensCpuAction
// GetCpuActions CPU行動記録一覧を取得する
GetCpuActions() []*domain.SevensCpuAction
// GetTablePlaced 各スートの配置済みビットマスクを取得する
GetTablePlaced() [5]uint16
}ShortDeckGame ショートデックホールデムゲームインタフェース
type ShortDeckGame interface {
BaseGame
// Reset ゲームを初期化する
Reset() error
// PlayerAction プレイヤーのベッティングアクションを実行する
// humanPlayMs: 迷い時間(ms, 0=計測なし)
PlayerAction(action, amount, humanPlayMs int) error
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetPlayers プレイヤー一覧を取得する
GetPlayers() []*domain.ShortDeckPlayer
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.ShortDeckPlayer
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetCommunityCards コミュニティカードを取得する
GetCommunityCards() []*domain.Card
// GetPot ポット額を取得する
GetPot() int
// GetSidePots サイドポット一覧を取得する
GetSidePots() []domain.ShortDeckSidePot
// GetDealerIdx ディーラーインデックスを取得する
GetDealerIdx() int
// GetCurrentTurn 現在のターンを取得する
GetCurrentTurn() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetLastBet 最後のベット額を取得する
GetLastBet() int
// GetMinRaise 最小レイズ額を取得する
GetMinRaise() int
// GetRaiseCount 現在のレイズ回数を取得する
GetRaiseCount() int
// GetRoundResults ラウンド結果を取得する
GetRoundResults() []domain.ShortDeckResult
// GetCpuActions CPU行動記録を取得する
GetCpuActions() []domain.ShortDeckCpuAction
// GetConfig ゲーム設定を取得する
GetConfig() domain.ShortDeckConfig
// SetConfig ゲーム設定を変更する
SetConfig(cfg domain.ShortDeckConfig)
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// GetActedFlags 各プレイヤーのアクション済みフラグを取得する
GetActedFlags() []bool
// GetHandCount ハンド数を取得する
GetHandCount() int
// Resize プレイヤー数を変更する
Resize(players []*domain.ShortDeckPlayer)
TournamentActionGame
// GetHumanProfile メタAIプロファイルを取得する
GetHumanProfile() *domain.BettingHumanProfile
// ResetProfile メタAIプロファイルをリセットする
ResetProfile()
// ExportProfile メタAIプロファイルをエクスポートする
ExportProfile() interface{}
// ImportProfile JSONバイトからメタAIプロファイルをインポートする
ImportProfile(data []byte) error
// GetEquity エクイティ計算結果を取得する
GetEquity() *domain.HoldemEquityResult
// GetPotOdds ポットオッズを取得する
GetPotOdds() float64
}SpadesGame スペードゲームインタフェース
type SpadesGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// NextRound 次のラウンドを開始する
NextRound()
// PlayerBid プレイヤーがビッドする
PlayerBid(bid int) error
// CpuBid CPUプレイヤーがビッドする
CpuBid()
// PlayerPlay プレイヤーがカードを出す
PlayerPlay(cardIndex int) error
// CpuPlay CPUプレイヤーが1ターン実行する
CpuPlay()
// ResolveTrick トリックを解決する
ResolveTrick()
// NextTrick 次のトリックを開始する
NextTrick()
// ScoreRound ラウンドの得点を計算する
ScoreRound()
// GetConfig ゲーム設定を取得する
GetConfig() domain.SpadesConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.SpadesConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.SpadesPhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// IsHumanBidTurn 現在のビッド手番が人間かを返す
IsHumanBidTurn() bool
// GetRoundNumber 現在のラウンド番号を取得する
GetRoundNumber() int
// GetTrickNumber 現在のトリック番号を取得する
GetTrickNumber() int
// GetCurrentPlayerIdx 現在のプレイヤーインデックスを取得する
GetCurrentPlayerIdx() int
// GetCurrentTrick 現在のトリックを取得する
GetCurrentTrick() []*domain.SpadesTrickCard
// GetSpadesBroken スペードブレイク済みかを返す
GetSpadesBroken() bool
// GetLeadPlayerIdx リードプレイヤーインデックスを取得する
GetLeadPlayerIdx() int
// GetBidPlayerIdx ビッドプレイヤーインデックスを取得する
GetBidPlayerIdx() int
// GetWinnerIdx 勝者インデックスを取得する
GetWinnerIdx() int
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.SpadesPlayer
// GetHint ヒントを取得する
GetHint() *domain.SpadesHint
}SpeedGame スピードゲームインタフェース
type SpeedGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// PlayerPlay 人間プレイヤーがカードを出す
PlayerPlay(cardIndex, pileIndex int) error
// CpuPlay CPUがカードを出す
CpuPlay() []*domain.SpeedCpuAction
// Flip 膠着時に台札をめくる
Flip() error
// UpdatePhase フェーズを再計算する
UpdatePhase()
// GetHint ヒントを返す
GetHint() (cardIdx, pileIdx int, found bool)
// GetConfig ゲーム設定を取得する
GetConfig() domain.SpeedConfig
// SetConfig ゲーム設定をセットする
SetConfig(cfg domain.SpeedConfig)
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetPhase 現在のフェーズを取得する
GetPhase() domain.SpeedPhase
// IsHumanTurn 現在の手番が人間かを返す
IsHumanTurn() bool
// IsStuck 膠着状態かを返す
IsStuck() bool
// GetPlayerCnt プレイヤー数を取得する
GetPlayerCnt() int
// GetPlayer 指定インデックスのプレイヤーを取得する
GetPlayer(i int) *domain.SpeedPlayer
// GetCenterPile 指定インデックスの台札を取得する
GetCenterPile(i int) *domain.Card
// GetWinnerIdx 勝者インデックスを取得する
GetWinnerIdx() int
// CanPlay 指定プレイヤーの手札カードが指定台札に出せるか
CanPlay(playerIdx, cardIdx, pileIdx int) bool
// PlayerHasAnyPlay 指定プレイヤーに出せる手があるか
PlayerHasAnyPlay(playerIdx int) bool
}SpiderGame スパイダーソリティアゲームインタフェース
type SpiderGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// ResetWithConfig 指定設定でゲームを初期化する
ResetWithConfig(cfg domain.SpiderConfig)
// Deal ストックからタブローに配る
Deal() error
// MoveTableauToTableau タブロー間でカードを移動する
MoveTableauToTableau(fromCol, cardIndex, toCol int) error
// GiveUp ギブアップする
GiveUp()
// GetHint ヒントを取得する
GetHint() *domain.SpiderHint
// AutoComplete 自動完了を実行する
AutoComplete() error
// Undo 操作を元に戻す
Undo() error
// CanUndo 元に戻す操作が可能かを返す
CanUndo() bool
// UndoToEscape 膠着状態から抜けるために必要なアンドゥ回数を返す
UndoToEscape() int
// UndoN n回連続でアンドゥを実行する
UndoN(n int) error
// GetPhase 現在のフェーズを取得する
GetPhase() domain.SpiderPhase
// GetMoveCount 移動回数を取得する
GetMoveCount() int
// GetStockCount 山札の残り枚数を取得する
GetStockCount() int
// GetTableau タブローを取得する
GetTableau() [domain.SpiderTableauCnt][]*domain.SpiderTableauCard
// GetCompletedSuits 完成スート数を取得する
GetCompletedSuits() int
// AllFaceUp 全カードが表向きかを返す
AllFaceUp() bool
// GetScore 現在のスコアを取得する
GetScore() int
// GetDifficulty 難易度を取得する
GetDifficulty() domain.SpiderDifficulty
// IsStalemate 手詰まり状態を取得する
IsStalemate() bool
}ThreeCardGame スリーカードポーカーゲームインタフェース
type ThreeCardGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// Bet アンテベットを行いカードを配る
Bet(ante, pairPlus int) error
// Play プレイベットを置いて勝負する
Play() error
// Fold フォールドする
Fold() error
// GetPlayerHand プレイヤーハンドを取得する
GetPlayerHand() []*domain.Card
// GetDealerHand ディーラーハンドを取得する
GetDealerHand() []*domain.Card
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetAnteBet アンテベット額を取得する
GetAnteBet() int
// GetPairPlusBet ペアプラスベット額を取得する
GetPairPlusBet() int
// GetPlayBet プレイベット額を取得する
GetPlayBet() int
// GetResult ゲーム結果を取得する
GetResult() domain.GameResult
// GetAntePayout アンテ配当を取得する
GetAntePayout() int
// GetPlayPayout プレイ配当を取得する
GetPlayPayout() int
// GetAnteBonusPayout アンテボーナス配当を取得する
GetAnteBonusPayout() int
// GetPairPlusPayout ペアプラス配当を取得する
GetPairPlusPayout() int
// GetTotalPayout 合計配当を取得する
GetTotalPayout() int
// GetDealerQualified ディーラークオリファイを取得する
GetDealerQualified() bool
// GetPlayerHandRank プレイヤーハンドランクを取得する
GetPlayerHandRank() int
// GetDealerHandRank ディーラーハンドランクを取得する
GetDealerHandRank() int
// GetChips チップを取得する
GetChips() int
}TournamentActionGame トーナメントアクション共通インタフェース リバイ・アドオン・マック・ハンド公開など、ホールデム系ゲーム共通のトーナメント操作を定義する。
type TournamentActionGame interface {
// Rebuy リバイを実行する
Rebuy() error
// SkipRebuy リバイをスキップする
SkipRebuy() error
// Addon アドオンを実行する
Addon() error
// SkipAddon アドオンをスキップする
SkipAddon() error
// IsRebuyAvailable リバイが可能かを返す
IsRebuyAvailable() bool
// IsAddonAvailable アドオンが可能かを返す
IsAddonAvailable() bool
// GetRebuyCounts 各プレイヤーのリバイ回数を取得する
GetRebuyCounts() []int
// GetAddonUsed 各プレイヤーのアドオン使用状態を取得する
GetAddonUsed() []bool
// GetRebuyPhaseType リバイフェーズ種別を取得する
GetRebuyPhaseType() int
// Muck ハンドをマックする
Muck() error
// ShowHand ハンドを公開する
ShowHand() error
// IsMuckAvailable マックが可能かを返す
IsMuckAvailable() bool
}TriPeaksGame トリピークスゲームインタフェース
type TriPeaksGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// Draw 山札からカードをめくる
Draw() error
// Remove タブローのカードを除去する
Remove(row, col int) error
// GiveUp ギブアップする
GiveUp()
// GetHint ヒントを取得する
GetHint() *domain.TriPeaksHint
// Undo 操作を元に戻す
Undo() error
// CanUndo 元に戻す操作が可能かを返す
CanUndo() bool
// UndoToEscape 膠着状態から抜けるために必要なアンドゥ回数を返す
UndoToEscape() int
// UndoN n回連続でアンドゥを実行する
UndoN(n int) error
// GetPhase 現在のフェーズを取得する
GetPhase() domain.TriPeaksPhase
// GetMoveCount 移動回数を取得する
GetMoveCount() int
// GetStockCount 山札の残り枚数を取得する
GetStockCount() int
// GetWaste ウェイストのカード一覧を取得する
GetWaste() []*domain.Card
// GetLayout レイアウトを取得する
GetLayout() [domain.TriPeaksRowCnt][domain.TriPeaksColCnt]*domain.TriPeaksCard
// IsExposed カードが露出しているかを返す
IsExposed(row, col int) bool
// AllRemoved 全タブローカードが除去されたかを返す
AllRemoved() bool
// IsStalemate 手詰まり状態を取得する
IsStalemate() bool
}VideoPokerGame ビデオポーカーゲームインタフェース
type VideoPokerGame interface {
BaseGame
// Reset ゲームを初期化する
Reset()
// Bet ベットしてディールする
Bet(amount int) error
// Hold ホールド選択&ドロー
Hold(indices []int) error
// GetHand ハンドを取得する
GetHand() []*domain.Card
// GetPhase 現在のフェーズを取得する
GetPhase() int
// GetGameEndFlag ゲーム終了フラグを取得する
GetGameEndFlag() bool
// GetBetAmount ベット額を取得する
GetBetAmount() int
// GetChips チップを取得する
GetChips() int
// GetResult ゲーム結果を取得する
GetResult() domain.GameResult
// GetPayout 配当金額を取得する
GetPayout() int
// GetHandRank ハンドランクを取得する
GetHandRank() int
// GetHandName ハンド名を取得する
GetHandName() string
// GetHeldIndices ホールドインデックスを取得する
GetHeldIndices() [domain.VideoPokerHandSize]bool
// GetVariantName バリアント名を取得する
GetVariantName() string
}Generated by gomarkdoc