dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit b3c176a338e03c2200d563810f56a4a42d90a6b4
parent 507274bed84ac105565770144211193d65a3e7dd
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Tue, 19 Dec 2023 01:29:49 -0500

cleanup

Diffstat:
Mpkg/web/handlers/poker/poker.go | 148++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mpkg/web/handlers/poker/poker_test.go | 74+++++++++++++++++++++++++++++++++++++-------------------------------------
2 files changed, 111 insertions(+), 111 deletions(-)

diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -56,7 +56,7 @@ func (p *Poker) GetOrCreateGame(db *database.DkfDB, roomID RoomID, pokerTableID PokerTableMinBet: pokerTableMinBet, pokerTableIsTest: pokerTableIsTest, playersEventCh: make(chan PlayerEvent), - Players: utils.NewRWMtx(make([]*SeatedPlayer, NbPlayers)), + Players: utils.NewRWMtx(make([]*seatedPlayer, NbPlayers)), dealerSeatIdx: atomic.Int32{}, } g.dealerSeatIdx.Store(-1) @@ -115,26 +115,26 @@ type Ongoing struct { communityCards []string } -type SeatedPlayer struct { - SeatIdx int - UserID database.UserID - Username database.Username - Cash utils.RWMtx[database.PokerChip] - LastActionTS time.Time +type seatedPlayer struct { + seatIdx int + userID database.UserID + username database.Username + cash utils.RWMtx[database.PokerChip] + lastActionTS time.Time } -func (p *SeatedPlayer) GetCash() (out database.PokerChip) { - p.Cash.RWith(func(v *database.PokerChip) { out = *v }) +func (p *seatedPlayer) GetCash() (out database.PokerChip) { + p.cash.RWith(func(v *database.PokerChip) { out = *v }) return } // Return either or not a player is eligible to play a game -func (p *SeatedPlayer) isEligible(pokerTableMinBet database.PokerChip) bool { +func (p *seatedPlayer) isEligible(pokerTableMinBet database.PokerChip) bool { return p != nil && p.GetCash() >= pokerTableMinBet } type PokerPlayer struct { - *SeatedPlayer + *seatedPlayer Bet utils.RWMtx[database.PokerChip] Cards utils.RWMtx[[]playerCard] Folded atomic.Bool @@ -159,22 +159,22 @@ func (p *PokerPlayer) isAllIn() bool { } func (p *PokerPlayer) refundPartialBet(db *database.DkfDB, pokerTableID int64, diff database.PokerChip) { - _ = db.PokerTableAccountRefundPartialBet(p.UserID, pokerTableID, diff) + _ = db.PokerTableAccountRefundPartialBet(p.userID, pokerTableID, diff) p.GameBet -= diff p.Bet.With(func(v *database.PokerChip) { *v -= diff }) - p.Cash.With(func(cash *database.PokerChip) { *cash += diff }) + p.cash.With(func(cash *database.PokerChip) { *cash += diff }) } func (p *PokerPlayer) doBet(db *database.DkfDB, pokerTableID int64, bet database.PokerChip) { - _ = db.PokerTableAccountBet(p.UserID, pokerTableID, bet) + _ = db.PokerTableAccountBet(p.userID, pokerTableID, bet) p.GameBet += bet p.Bet.With(func(v *database.PokerChip) { *v += bet }) - p.Cash.With(func(cash *database.PokerChip) { *cash -= bet }) + p.cash.With(func(cash *database.PokerChip) { *cash -= bet }) } func (p *PokerPlayer) gain(db *database.DkfDB, pokerTableID int64, gain database.PokerChip) { - _ = db.PokerTableAccountGain(p.UserID, pokerTableID, gain) - p.Cash.With(func(cash *database.PokerChip) { *cash += gain }) + _ = db.PokerTableAccountGain(p.userID, pokerTableID, gain) + p.cash.With(func(cash *database.PokerChip) { *cash += gain }) p.Bet.With(func(bet *database.PokerChip) { *bet = 0 }) } @@ -195,7 +195,7 @@ func (p *PokerPlayer) refundBet(db *database.DkfDB, pokerTableID int64) { func (p *PokerPlayer) doBetAndNotif(db *database.DkfDB, pokerTableID int64, bet database.PokerChip, roomTopic string) { p.doBet(db, pokerTableID, bet) - PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.GetBet(), Cash: p.GetCash()}) + PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.seatIdx, Player: p.username, Bet: bet, TotalBet: p.GetBet(), Cash: p.GetCash()}) } type playerCard struct { @@ -204,7 +204,7 @@ type playerCard struct { } type PokerGame struct { - Players utils.RWMtx[[]*SeatedPlayer] + Players utils.RWMtx[[]*seatedPlayer] Ongoing *Ongoing db *database.DkfDB roomID RoomID @@ -353,7 +353,7 @@ func (g *Ongoing) GetDeckHash() string { // [p1 p2] -> Ongoing.Players func (g *Ongoing) getPlayerBySeatIdx(seatIdx int) (*PokerPlayer, int) { for idx, p := range g.Players { - if p.SeatIdx == seatIdx { + if p.seatIdx == seatIdx { return p, idx } } @@ -380,16 +380,16 @@ func (g *Ongoing) countAlivePlayers() (playerAlive int) { func (g *Ongoing) getPlayer(userID database.UserID) *PokerPlayer { for _, p := range g.Players { - if p.UserID == userID { + if p.userID == userID { return p } } return nil } -func getPlayer(players []*SeatedPlayer, userID database.UserID) (out *SeatedPlayer) { +func getPlayer(players []*seatedPlayer, userID database.UserID) (out *seatedPlayer) { for _, p := range players { - if p != nil && p.UserID == userID { + if p != nil && p.userID == userID { return p } } @@ -403,11 +403,11 @@ func (g *PokerGame) IsSeated(userID database.UserID) bool { } func (g *PokerGame) isSeated(userID database.UserID) (out bool) { - g.Players.RWith(func(gPlayers *[]*SeatedPlayer) { out = isSeated(*gPlayers, userID) }) + g.Players.RWith(func(gPlayers *[]*seatedPlayer) { out = isSeated(*gPlayers, userID) }) return } -func isSeated(players []*SeatedPlayer, userID database.UserID) bool { +func isSeated(players []*seatedPlayer, userID database.UserID) bool { return getPlayer(players, userID) != nil } @@ -460,7 +460,7 @@ func (g *PokerGame) Sit(userID database.UserID, username database.Username, pos return } - if err := g.Players.WithE(func(gPlayers *[]*SeatedPlayer) error { + if err := g.Players.WithE(func(gPlayers *[]*seatedPlayer) error { tableAccount, err := g.db.GetPokerTableAccount(userID, tableID) if err != nil { return errors.New("failed to get table account") @@ -477,7 +477,7 @@ func (g *PokerGame) Sit(userID database.UserID, username database.Username, pos if (*gPlayers)[pos] != nil { return errors.New("seat already taken") } - (*gPlayers)[pos] = &SeatedPlayer{SeatIdx: pos, UserID: userID, Username: username, Cash: utils.NewRWMtx(tableAccount.Amount), LastActionTS: time.Now()} + (*gPlayers)[pos] = &seatedPlayer{seatIdx: pos, userID: userID, username: username, cash: utils.NewRWMtx(tableAccount.Amount), lastActionTS: time.Now()} PokerPubSub.Pub(g.roomID.Topic(), PokerSeatTakenEvent{}) g.newLogEvent(fmt.Sprintf("%s sit", username.String())) @@ -497,22 +497,22 @@ func (g *PokerGame) UnSitPlayer(userID database.UserID) { } } - g.Players.With(func(gPlayers *[]*SeatedPlayer) { + g.Players.With(func(gPlayers *[]*seatedPlayer) { p := getPlayer(*gPlayers, userID) if p == nil { return } g.unSitPlayer1(gPlayers, p) PokerPubSub.Pub(g.roomID.Topic(), PokerSeatLeftEvent{}) - g.newLogEvent(fmt.Sprintf("%s un-sit", p.Username.String())) + g.newLogEvent(fmt.Sprintf("%s un-sit", p.username.String())) }) } -func (g *PokerGame) unSitPlayer1(gPlayers *[]*SeatedPlayer, seatedPlayer *SeatedPlayer) { +func (g *PokerGame) unSitPlayer1(gPlayers *[]*seatedPlayer, seatedPlayer *seatedPlayer) { ongoing := g.Ongoing if ongoing != nil { - if player := ongoing.getPlayer(seatedPlayer.UserID); player != nil { - g.sendUnsitPlayerEvent(player.UserID) + if player := ongoing.getPlayer(seatedPlayer.userID); player != nil { + g.sendUnsitPlayerEvent(player.userID) player.Folded.Store(true) player.Cards.RWith(func(playerCards *[]playerCard) { for _, card := range *playerCards { @@ -523,7 +523,7 @@ func (g *PokerGame) unSitPlayer1(gPlayers *[]*SeatedPlayer, seatedPlayer *Seated }) } } - (*gPlayers)[seatedPlayer.SeatIdx] = nil + (*gPlayers)[seatedPlayer.seatIdx] = nil } func generateDeck() []string { @@ -540,10 +540,10 @@ func generateDeck() []string { func newOngoing(g *PokerGame) *Ongoing { players := make([]*PokerPlayer, 0) - g.Players.RWith(func(gPlayers *[]*SeatedPlayer) { + g.Players.RWith(func(gPlayers *[]*seatedPlayer) { for _, p := range *gPlayers { if p.isEligible(g.PokerTableMinBet) { - players = append(players, &PokerPlayer{SeatedPlayer: p}) + players = append(players, &PokerPlayer{seatedPlayer: p}) } } }) @@ -571,12 +571,12 @@ func showCards(g *PokerGame, seats []Seat) { firstCard = (*pCards)[0] secondCard = (*pCards)[1] }) - seatData := seats[p.SeatIdx] - if p.SeatIdx == 0 { + seatData := seats[p.seatIdx] + if p.seatIdx == 0 { seatData.Left -= 30 - } else if p.SeatIdx == 1 { + } else if p.seatIdx == 1 { seatData.Left -= 31 - } else if p.SeatIdx == 2 { + } else if p.seatIdx == 2 { seatData.Top -= 8 } evt1 := PokerEvent{ID: "card" + itoa(firstCard.idx), Name: firstCard.name, Idx: firstCard.idx, Top: seatData.Top, Left: seatData.Left, Reveal: true} @@ -666,7 +666,7 @@ func doUnsit(g *PokerGame, p *PokerPlayer, playerAlive *int) int { } func doTimeout(g *PokerGame, p *PokerPlayer, minBet *database.PokerChip, playerAlive *int) int { - pUsername := p.Username + pUsername := p.username if p.GetBet() < *minBet { foldPlayer(g, p) g.newLogEvent(fmt.Sprintf("%s auto fold", pUsername)) @@ -683,11 +683,11 @@ func doTimeout(g *PokerGame, p *PokerPlayer, minBet *database.PokerChip, playerA func doFold(g *PokerGame, p *PokerPlayer, playerAlive *int) int { foldPlayer(g, p) - g.newLogEvent(fmt.Sprintf("%s fold", p.Username)) + g.newLogEvent(fmt.Sprintf("%s fold", p.username)) *playerAlive-- if *playerAlive == 1 { - PokerPubSub.Pub(g.roomID.UserTopic(p.UserID), ErrorMsgEvent{Message: ""}) + PokerPubSub.Pub(g.roomID.UserTopic(p.userID), ErrorMsgEvent{Message: ""}) return breakRoundIsSettledLoop } return doNothing @@ -696,16 +696,16 @@ func doFold(g *PokerGame, p *PokerPlayer, playerAlive *int) int { func doCheck(g *PokerGame, p *PokerPlayer, minBet *database.PokerChip) int { if p.GetBet() < *minBet { msg := fmt.Sprintf("Need to bet %d", *minBet-p.GetBet()) - PokerPubSub.Pub(g.roomID.UserTopic(p.UserID), ErrorMsgEvent{Message: msg}) + PokerPubSub.Pub(g.roomID.UserTopic(p.userID), ErrorMsgEvent{Message: msg}) return continueGetPlayerEventLoop } - g.newLogEvent(fmt.Sprintf("%s check", p.Username)) + g.newLogEvent(fmt.Sprintf("%s check", p.username)) return doNothing } func doCall(g *PokerGame, p *PokerPlayer, minBet *database.PokerChip, newlyAllInPlayers *[]*PokerPlayer) int { - pUsername := p.Username + pUsername := p.username bet := utils.MinInt(*minBet-p.GetBet(), p.GetCash()) if bet == 0 { g.newLogEvent(fmt.Sprintf("%s check", pUsername)) @@ -729,7 +729,7 @@ func doAllIn(g *PokerGame, p *PokerPlayer, minBet *database.PokerChip, } *minBet = utils.MaxInt(p.GetBet()+bet, *minBet) p.doBetAndNotif(g.db, g.pokerTableID, bet, g.roomID.Topic()) - logMsg := fmt.Sprintf("%s all-in (%d)", p.Username, bet) + logMsg := fmt.Sprintf("%s all-in (%d)", p.username, bet) if p.isAllIn() { *newlyAllInPlayers = append(*newlyAllInPlayers, p) } @@ -740,7 +740,7 @@ func doAllIn(g *PokerGame, p *PokerPlayer, minBet *database.PokerChip, func doBet(g *PokerGame, p *PokerPlayer, minBet *database.PokerChip, newlyAllInPlayers *[]*PokerPlayer, lastRaisePlayerIdx *int, playerToPlayIdx int, evt PlayerEvent) int { roomTopic := g.roomID.Topic() - roomUserTopic := g.roomID.UserTopic(p.UserID) + roomUserTopic := g.roomID.UserTopic(p.userID) pokerTableMinBet := g.PokerTableMinBet bet := evt.Bet // Ensure the player cannot bet below the table minimum bet (amount of the big blind) @@ -764,7 +764,7 @@ func doBet(g *PokerGame, p *PokerPlayer, minBet *database.PokerChip, } *minBet = utils.MaxInt(p.GetBet()+bet, *minBet) p.doBetAndNotif(g.db, g.pokerTableID, bet, roomTopic) - logMsg := fmt.Sprintf("%s bet %d", p.Username, bet) + logMsg := fmt.Sprintf("%s bet %d", p.username, bet) if p.isAllIn() { logMsg += " (all-in)" *newlyAllInPlayers = append(*newlyAllInPlayers, p) @@ -797,11 +797,11 @@ func applyAutoAction(g *PokerGame, p *PokerPlayer, minBet *database.PokerChip, lastRaisePlayerIdx, playerAlive *int, playerToPlayIdx int, autoAction AutoAction, autoCache map[database.UserID]AutoAction) (actionResult int) { - pUserID := p.UserID + pUserID := p.userID roomUserTopic := g.roomID.UserTopic(pUserID) if autoAction.action > NoAction { time.Sleep(500 * time.Millisecond) - p.LastActionTS = time.Now() + p.lastActionTS = time.Now() switch autoAction.action { case NoAction: case FoldAction: @@ -825,7 +825,7 @@ func handlePlayerActionEvent(g *PokerGame, p *PokerPlayer, minBet *database.Poke newlyAllInPlayers *[]*PokerPlayer, lastRaisePlayerIdx, playerAlive *int, playerToPlayIdx int, evt PlayerEvent) (actionResult int) { - p.LastActionTS = time.Now() + p.lastActionTS = time.Now() if evt.Fold { actionResult = doFold(g, p, playerAlive) } else if evt.Check { @@ -871,7 +871,7 @@ RoundIsSettledLoop: playerToPlayIdx = (playerToPlayIdx + 1) % len(ongoing.Players) p := ongoing.Players[playerToPlayIdx] p.countChancesToAction++ - pUserID := p.UserID + pUserID := p.userID roomUserTopic := roomID.UserTopic(pUserID) if playerToPlayIdx == lastRaisePlayerIdx { @@ -884,7 +884,7 @@ RoundIsSettledLoop: continue AllPlayersLoop } - setWaitTurn(g, p.SeatIdx) + setWaitTurn(g, p.seatIdx) PokerPubSub.Pub(roomUserTopic, PokerYourTurnEvent{}) // Maximum time allowed for the player to send his action @@ -1044,12 +1044,12 @@ func dealPlayersCards(g *PokerGame, seats []Seat, idx *int) { var card string for cardIdx := 1; cardIdx <= NbCardsPerPlayer; cardIdx++ { for _, p := range ongoing.Players { - pUserID := p.UserID + pUserID := p.userID if !p.canBet() { continue } roomUserTopic := roomID.UserTopic(pUserID) - seatData := seats[p.SeatIdx] + seatData := seats[p.seatIdx] time.Sleep(time.Second) card = ongoing.Deck[*idx] *idx++ @@ -1060,12 +1060,12 @@ func dealPlayersCards(g *PokerGame, seats []Seat, idx *int) { top = seatData.Top2 } - seatData1 := seats[p.SeatIdx] - if p.SeatIdx == 0 { + seatData1 := seats[p.seatIdx] + if p.seatIdx == 0 { seatData1.Left -= 30 - } else if p.SeatIdx == 1 { + } else if p.seatIdx == 1 { seatData1.Left -= 31 - } else if p.SeatIdx == 2 { + } else if p.seatIdx == 2 { seatData1.Top -= 8 } if cardIdx == 2 { @@ -1218,26 +1218,26 @@ func applyBigBlindBet(g *PokerGame, bigBlindBet database.PokerChip, bbIdx int) { func applyBlindBet(g *PokerGame, playerIdx int, bet database.PokerChip, name string) { p := g.Ongoing.Players[playerIdx] p.doBetAndNotif(g.db, g.pokerTableID, bet, g.roomID.Topic()) - g.newLogEvent(fmt.Sprintf("%s %s %d", p.Username, name, bet)) + g.newLogEvent(fmt.Sprintf("%s %s %d", p.username, name, bet)) } func autoUnsitInactivePlayers(g *PokerGame) { ongoing := g.Ongoing pokerTableMinBet := g.PokerTableMinBet roomTopic := g.roomID.Topic() - g.Players.With(func(gPlayers *[]*SeatedPlayer) { + g.Players.With(func(gPlayers *[]*seatedPlayer) { for _, p := range *gPlayers { if playerShouldBeBooted(p, ongoing, pokerTableMinBet) { g.unSitPlayer1(gPlayers, p) PokerPubSub.Pub(roomTopic, PokerSeatLeftEvent{}) - g.newLogEvent(fmt.Sprintf("%s auto un-sit", p.Username)) + g.newLogEvent(fmt.Sprintf("%s auto un-sit", p.username)) } } }) } // Returns either or not a seated player should be booted out of the table. -func playerShouldBeBooted(p *SeatedPlayer, ongoing *Ongoing, pokerTableMinBet database.PokerChip) (playerShallBeBooted bool) { +func playerShouldBeBooted(p *seatedPlayer, ongoing *Ongoing, pokerTableMinBet database.PokerChip) (playerShallBeBooted bool) { if p == nil { return false } @@ -1245,10 +1245,10 @@ func playerShouldBeBooted(p *SeatedPlayer, ongoing *Ongoing, pokerTableMinBet da if !pIsEligible { return true } - if p.LastActionTS.Before(ongoing.CreatedAt) { + if p.lastActionTS.Before(ongoing.CreatedAt) { // If the player was playing the game, must be booted if he had the chance to make actions and did not. // If the player was not playing the game, must be booted if he's not eligible to play the next one. - op := ongoing.getPlayer(p.UserID) + op := ongoing.getPlayer(p.userID) playerShallBeBooted = (op != nil && op.countChancesToAction > 0) || (op == nil && !pIsEligible) } @@ -1276,8 +1276,8 @@ func applyGains(g *PokerGame, playersGain []PlayerGain, mainPot, rake database.P } for _, el := range playersGain { - g.newLogEvent(fmt.Sprintf("Winner #%d: %s %s -> %d", el.Group, el.Player.Username, el.HandStr, el.Gain)) - winnersStr += el.Player.Username.String() + " " + g.newLogEvent(fmt.Sprintf("Winner #%d: %s %s -> %d", el.Group, el.Player.username, el.HandStr, el.Gain)) + winnersStr += el.Player.username.String() + " " el.Player.gain(tx, pokerTableID, el.Gain) } for _, op := range ongoing.Players { @@ -1451,7 +1451,7 @@ func (g *PokerGame) Deal(roomID RoomID, userID database.UserID) { } func (g *PokerGame) countEligibleSeated() (count int) { - g.Players.RWith(func(gPlayers *[]*SeatedPlayer) { + g.Players.RWith(func(gPlayers *[]*seatedPlayer) { for _, p := range *gPlayers { if p.isEligible(g.PokerTableMinBet) { count++ @@ -1462,7 +1462,7 @@ func (g *PokerGame) countEligibleSeated() (count int) { } func (g *PokerGame) CountSeated() (count int) { - g.Players.RWith(func(gPlayers *[]*SeatedPlayer) { + g.Players.RWith(func(gPlayers *[]*seatedPlayer) { for _, p := range *gPlayers { if p != nil { count++ @@ -1761,7 +1761,7 @@ func buildActionsDiv(roomID RoomID) (html string) { } func buildSeatsHtml(g *PokerGame, authUser *database.User) (html string) { - g.Players.RWith(func(gPlayers *[]*SeatedPlayer) { + g.Players.RWith(func(gPlayers *[]*seatedPlayer) { for i := range *gPlayers { html += `<div id="seat` + itoa(i+1) + `Pot" class="seatPot"></div>` } @@ -1783,7 +1783,7 @@ func drawSeatsStyle(authUser *database.User, g *PokerGame) string { ongoing := g.Ongoing html := "<style>" seated := g.isSeated(authUser.ID) - g.Players.RWith(func(players *[]*SeatedPlayer) { + g.Players.RWith(func(players *[]*seatedPlayer) { for i, p := range *players { if p != nil || seated { html += `.takeSeat` + itoa(i+1) + ` { display: none; }` @@ -1791,8 +1791,8 @@ func drawSeatsStyle(authUser *database.User, g *PokerGame) string { html += `.takeSeat` + itoa(i+1) + ` { display: block; }` } if p != nil { - pUserID := p.UserID - pUsername := p.Username + pUserID := p.userID + pUsername := p.username if pUserID == authUser.ID { html += `#seat` + itoa(i+1) + ` { border: 2px solid #0d1b8f; }` } @@ -1851,7 +1851,7 @@ func drawGameStartedEvent(evt GameStartedEvent, authUser *database.User) (html s func drawGameIsDoneHtml(g *PokerGame, evt GameIsDoneEvent) (html string) { html += `<style>` - g.Players.RWith(func(gPlayers *[]*SeatedPlayer) { + g.Players.RWith(func(gPlayers *[]*seatedPlayer) { for i, p := range *gPlayers { if p != nil { html += `#seat` + itoa(i+1) + `_cash:before { content: "` + itoa2(p.GetCash()) + `"; }` diff --git a/pkg/web/handlers/poker/poker_test.go b/pkg/web/handlers/poker/poker_test.go @@ -12,18 +12,18 @@ func n(v uint64) utils.RWMtx[database.PokerChip] { } func Test_sortGameResults(t *testing.T) { - p1 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p1"}, GameBet: 10} - p2 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p2"}, GameBet: 20} - p3 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p3"}, GameBet: 30} - p4 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p4"}, GameBet: 100} + p1 := &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p1"}, GameBet: 10} + p2 := &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p2"}, GameBet: 20} + p3 := &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p3"}, GameBet: 30} + p4 := &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(1), username: "p4"}, GameBet: 100} arr := []gameResult{ {1, []*PokerPlayer{p2, p4, p1, p3}}, } sortGameResults(arr) - assert.Equal(t, database.Username("p1"), arr[0].players[0].Username) - assert.Equal(t, database.Username("p2"), arr[0].players[1].Username) - assert.Equal(t, database.Username("p3"), arr[0].players[2].Username) - assert.Equal(t, database.Username("p4"), arr[0].players[3].Username) + assert.Equal(t, database.Username("p1"), arr[0].players[0].username) + assert.Equal(t, database.Username("p2"), arr[0].players[1].username) + assert.Equal(t, database.Username("p3"), arr[0].players[2].username) + assert.Equal(t, database.Username("p4"), arr[0].players[3].username) } func Test_processPot(t *testing.T) { @@ -31,10 +31,10 @@ func Test_processPot(t *testing.T) { var arr []gameResult var res []PlayerGain - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p1"}, GameBet: 100, AllInMaxGain: 400} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p2"}, GameBet: 200, AllInMaxGain: 700} - p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p3"}, GameBet: 300, AllInMaxGain: 900} - p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p4"}, GameBet: 400} + p1 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p1"}, GameBet: 100, AllInMaxGain: 400} + p2 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p2"}, GameBet: 200, AllInMaxGain: 700} + p3 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p3"}, GameBet: 300, AllInMaxGain: 900} + p4 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(1), username: "p4"}, GameBet: 400} arr = []gameResult{ {1, []*PokerPlayer{p2, p4, p1, p3}}, } @@ -45,10 +45,10 @@ func Test_processPot(t *testing.T) { assert.Equal(t, database.PokerChip(250), res[2].Gain) assert.Equal(t, database.PokerChip(250), res[3].Gain) - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p1"}, GameBet: 10, AllInMaxGain: 40} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p2"}, GameBet: 20, AllInMaxGain: 70} - p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p3"}, GameBet: 300, AllInMaxGain: 630} - p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p4"}, GameBet: 400} + p1 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p1"}, GameBet: 10, AllInMaxGain: 40} + p2 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p2"}, GameBet: 20, AllInMaxGain: 70} + p3 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p3"}, GameBet: 300, AllInMaxGain: 630} + p4 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(1), username: "p4"}, GameBet: 400} arr = []gameResult{ {1, []*PokerPlayer{p2, p4, p1, p3}}, } @@ -59,8 +59,8 @@ func Test_processPot(t *testing.T) { assert.Equal(t, database.PokerChip(445), res[2].Gain) assert.Equal(t, database.PokerChip(445), res[3].Gain) - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p1"}, GameBet: 500} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p2"}, GameBet: 500, AllInMaxGain: 1000} + p1 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(1), username: "p1"}, GameBet: 500} + p2 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p2"}, GameBet: 500, AllInMaxGain: 1000} arr = []gameResult{ {1, []*PokerPlayer{p2}}, {2, []*PokerPlayer{p1}}, @@ -68,13 +68,13 @@ func Test_processPot(t *testing.T) { sortGameResults(arr) res, _ = processPot(arr, 1000, 20, false, 2) assert.Equal(t, 1, len(res)) - assert.Equal(t, database.Username("p2"), res[0].Player.Username) + assert.Equal(t, database.Username("p2"), res[0].Player.username) assert.Equal(t, database.PokerChip(1000), res[0].Gain) - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p1"}, GameBet: 5} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p2"}, GameBet: 5} - p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p3"}, GameBet: 5} - p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p4"}, GameBet: 5} + p1 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(1), username: "p1"}, GameBet: 5} + p2 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(1), username: "p2"}, GameBet: 5} + p3 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(1), username: "p3"}, GameBet: 5} + p4 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(1), username: "p4"}, GameBet: 5} //p5 = &PokerPlayer{Cash: 1, GameBet: 3, Folded: true, Username: "p5"} arr = []gameResult{ {1, []*PokerPlayer{p1, p2, p3}}, @@ -87,8 +87,8 @@ func Test_processPot(t *testing.T) { assert.Equal(t, database.PokerChip(8), res[1].Gain) assert.Equal(t, database.PokerChip(7), res[2].Gain) - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p1"}, GameBet: 900, AllInMaxGain: 1560} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p2"}, GameBet: 640, AllInMaxGain: 1300} + p1 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p1"}, GameBet: 900, AllInMaxGain: 1560} + p2 = &PokerPlayer{seatedPlayer: &seatedPlayer{cash: n(0), username: "p2"}, GameBet: 640, AllInMaxGain: 1300} arr = []gameResult{ {1, []*PokerPlayer{p2}}, {2, []*PokerPlayer{p1}}, @@ -110,20 +110,20 @@ func Test_isRoundSettled(t *testing.T) { want bool }{ {"1", args{players: []*PokerPlayer{ - {Bet: n(10), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, - {Bet: n(20), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, - {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}, - {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}}}, true}, + {Bet: n(10), seatedPlayer: &seatedPlayer{cash: n(0)}}, + {Bet: n(20), seatedPlayer: &seatedPlayer{cash: n(0)}}, + {Bet: n(30), seatedPlayer: &seatedPlayer{cash: n(1)}}, + {Bet: n(30), seatedPlayer: &seatedPlayer{cash: n(1)}}}}, true}, {"2", args{players: []*PokerPlayer{ - {Bet: n(100), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, - {Bet: n(20), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, - {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}, - {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}}}, false}, + {Bet: n(100), seatedPlayer: &seatedPlayer{cash: n(0)}}, + {Bet: n(20), seatedPlayer: &seatedPlayer{cash: n(0)}}, + {Bet: n(30), seatedPlayer: &seatedPlayer{cash: n(1)}}, + {Bet: n(30), seatedPlayer: &seatedPlayer{cash: n(1)}}}}, false}, {"3", args{players: []*PokerPlayer{ - {Bet: n(10), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, - {Bet: n(200), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, - {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}, - {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}}}, false}, + {Bet: n(10), seatedPlayer: &seatedPlayer{cash: n(0)}}, + {Bet: n(200), seatedPlayer: &seatedPlayer{cash: n(0)}}, + {Bet: n(30), seatedPlayer: &seatedPlayer{cash: n(1)}}, + {Bet: n(30), seatedPlayer: &seatedPlayer{cash: n(1)}}}}, false}, // TODO: Add test cases. } for _, tt := range tests {