commit 5c7d821e583ee6721eb39c393e9a41ea0a4a734d
parent aab78b4f5e2cf6ce9ac661df13cf65725d7fbca9
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sun, 17 Dec 2023 04:47:30 -0500
cleanup
Diffstat:
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}},