dkforest

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

commit 5c7d821e583ee6721eb39c393e9a41ea0a4a734d
parent aab78b4f5e2cf6ce9ac661df13cf65725d7fbca9
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Sun, 17 Dec 2023 04:47:30 -0500

cleanup

Diffstat:
Mpkg/database/tablePokerTables.go | 6------
Mpkg/web/handlers/poker/poker.go | 12+++++++-----
Mpkg/web/handlers/poker/poker_test.go | 42+++++++++++++++++++++---------------------
3 files changed, 28 insertions(+), 32 deletions(-)

diff --git a/pkg/database/tablePokerTables.go b/pkg/database/tablePokerTables.go @@ -90,12 +90,6 @@ func (d *DkfDB) GetPokerTableAccount(userID UserID, pokerTableID int64) (out Pok return } -func (d *DkfDB) PokerTableAccountResetAmountBet(userID UserID, pokerTableID int64) (err error) { - err = d.db.Exec(`UPDATE poker_table_accounts SET amount_bet = 0 WHERE user_id = ? AND poker_table_id = ?`, - userID, pokerTableID).Error - return -} - func (d *DkfDB) PokerTableAccountBet(userID UserID, pokerTableID int64, bet PokerChip) (err error) { err = d.db.Exec(`UPDATE poker_table_accounts SET amount = amount - ?, amount_bet = amount_bet + ? WHERE user_id = ? AND poker_table_id = ?`, bet, bet, userID, pokerTableID).Error diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -116,7 +116,7 @@ func (p *SeatedPlayer) isEligible(pokerTableMinBet database.PokerChip) bool { type PokerPlayer struct { *SeatedPlayer - RoundTotalBet database.PokerChip + GameBet database.PokerChip Bet database.PokerChip AllInMaxGain database.PokerChip SeatIdx int // 0 indexed @@ -135,6 +135,7 @@ func (p *PokerPlayer) isAllIn() bool { func (p *PokerPlayer) refundPartialBet(db *database.DkfDB, pokerTableID int64, diff database.PokerChip) { _ = db.PokerTableAccountRefundPartialBet(p.UserID, pokerTableID, diff) + p.GameBet -= diff p.Bet -= diff p.Cash += diff } @@ -152,7 +153,8 @@ func (p *PokerPlayer) gain(db *database.DkfDB, pokerTableID int64, gain database } func (p *PokerPlayer) resetBet(db *database.DkfDB, pokerTableID int64) { - _ = db.PokerTableAccountResetAmountBet(p.UserID, pokerTableID) + // Do not track in database + // DB keeps track of what was bet during the whole (1 hand) game p.Bet = 0 } @@ -162,7 +164,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) - p.RoundTotalBet += bet + p.GameBet += bet PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.GetBet(), Cash: p.GetCash()}) } @@ -266,12 +268,12 @@ func (g *Ongoing) computeWinners() (winner []GameResult) { return arr } -// Sort players by cash remaining (to have all-ins first), then by RoundTotalBet. +// Sort players by cash remaining (to have all-ins first), then by GameBet. func sortGameResults(arr []GameResult) { for idx := range arr { sort.Slice(arr[idx].Players, func(i, j int) bool { if arr[idx].Players[i].GetCash() == arr[idx].Players[j].GetCash() { - return arr[idx].Players[i].RoundTotalBet < arr[idx].Players[j].RoundTotalBet + return arr[idx].Players[i].GameBet < arr[idx].Players[j].GameBet } return arr[idx].Players[i].GetCash() < arr[idx].Players[j].GetCash() }) diff --git a/pkg/web/handlers/poker/poker_test.go b/pkg/web/handlers/poker/poker_test.go @@ -7,10 +7,10 @@ import ( ) func Test_sortGameResults(t *testing.T) { - p1 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p1"}, RoundTotalBet: 10} - p2 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, RoundTotalBet: 20} - p3 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p3"}, RoundTotalBet: 30} - p4 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, RoundTotalBet: 100} + p1 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p1"}, GameBet: 10} + p2 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, GameBet: 20} + p3 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p3"}, GameBet: 30} + p4 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, GameBet: 100} arr := []GameResult{ {1, []*PokerPlayer{p2, p4, p1, p3}}, } @@ -26,10 +26,10 @@ func Test_processPot(t *testing.T) { var arr []GameResult var res []PlayerGain - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p1"}, RoundTotalBet: 100, AllInMaxGain: 400} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, RoundTotalBet: 200, AllInMaxGain: 700} - p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p3"}, RoundTotalBet: 300, AllInMaxGain: 900} - p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, RoundTotalBet: 400} + p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p1"}, GameBet: 100, AllInMaxGain: 400} + p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, GameBet: 200, AllInMaxGain: 700} + p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p3"}, GameBet: 300, AllInMaxGain: 900} + p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, GameBet: 400} arr = []GameResult{ {1, []*PokerPlayer{p2, p4, p1, p3}}, } @@ -40,10 +40,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: 0, Username: "p1"}, RoundTotalBet: 10, AllInMaxGain: 40} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, RoundTotalBet: 20, AllInMaxGain: 70} - p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p3"}, RoundTotalBet: 300, AllInMaxGain: 630} - p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, RoundTotalBet: 400} + p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p1"}, GameBet: 10, AllInMaxGain: 40} + p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, GameBet: 20, AllInMaxGain: 70} + p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p3"}, GameBet: 300, AllInMaxGain: 630} + p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, GameBet: 400} arr = []GameResult{ {1, []*PokerPlayer{p2, p4, p1, p3}}, } @@ -54,8 +54,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: 1, Username: "p1"}, RoundTotalBet: 500} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, RoundTotalBet: 500, AllInMaxGain: 1000} + p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p1"}, GameBet: 500} + p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, GameBet: 500, AllInMaxGain: 1000} arr = []GameResult{ {1, []*PokerPlayer{p2}}, {2, []*PokerPlayer{p1}}, @@ -66,11 +66,11 @@ func Test_processPot(t *testing.T) { assert.Equal(t, database.Username("p2"), res[0].Player.Username) assert.Equal(t, database.PokerChip(1000), res[0].Gain) - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p1"}, RoundTotalBet: 5} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p2"}, RoundTotalBet: 5} - p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p3"}, RoundTotalBet: 5} - p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, RoundTotalBet: 5} - //p5 = &PokerPlayer{Cash: 1, RoundTotalBet: 3, Folded: true, Username: "p5"} + p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p1"}, GameBet: 5} + p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p2"}, GameBet: 5} + p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p3"}, GameBet: 5} + p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, GameBet: 5} + //p5 = &PokerPlayer{Cash: 1, GameBet: 3, Folded: true, Username: "p5"} arr = []GameResult{ {1, []*PokerPlayer{p1, p2, p3}}, {2, []*PokerPlayer{p4}}, @@ -82,8 +82,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: 0, Username: "p1"}, RoundTotalBet: 900, AllInMaxGain: 1560} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, RoundTotalBet: 640, AllInMaxGain: 1300} + p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p1"}, GameBet: 900, AllInMaxGain: 1560} + p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, GameBet: 640, AllInMaxGain: 1300} arr = []GameResult{ {1, []*PokerPlayer{p2}}, {2, []*PokerPlayer{p1}},