dkforest

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

commit 524d07dfa0c251fdada838a2e574e30bbabf5dad
parent ef741127468cb7d866c31f0d938cf7e1c8ebfa45
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Fri, 15 Dec 2023 22:52:11 -0500

cap max rake in relation to big blind

Diffstat:
Mpkg/web/handlers/poker/poker.go | 6+++---
Mpkg/web/handlers/poker/poker_test.go | 10+++++-----
2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -906,7 +906,7 @@ END: winners := g.Ongoing.computeWinners() mainPot := g.Ongoing.getMainPot() - playersGain, rake := processPot(winners, mainPot, collectRake) + playersGain, rake := processPot(winners, mainPot, g.PokerTableMinBet, collectRake) nbPlayersGain := len(playersGain) tx := db.Begin() @@ -974,9 +974,8 @@ type PlayerGain struct { } const rakePct = 0.07 -const maxRake = 3000 -func processPot(winners []GameResult, mainPot database.PokerChip, collectRake bool) (res []PlayerGain, rake database.PokerChip) { +func processPot(winners []GameResult, mainPot, pokerTableMinBet database.PokerChip, collectRake bool) (res []PlayerGain, rake database.PokerChip) { newPlayerGain := func(player *PokerPlayer, gain database.PokerChip, groupIdx int, handStr string) PlayerGain { return PlayerGain{Player: player, Gain: gain, Group: groupIdx, HandStr: handStr} } @@ -987,6 +986,7 @@ func processPot(winners []GameResult, mainPot database.PokerChip, collectRake bo } if collectRake { + maxRake := pokerTableMinBet * 15 rake = database.PokerChip(rakePct * float64(mainPot)) rake = utils.MinInt(rake, maxRake) // Max rake mainPot -= rake diff --git a/pkg/web/handlers/poker/poker_test.go b/pkg/web/handlers/poker/poker_test.go @@ -33,7 +33,7 @@ func Test_processPot(t *testing.T) { {1, []*PokerPlayer{p2, p4, p1, p3}}, } sortGameResults(arr) - res = processPot(arr, 1000) + res, _ = processPot(arr, 1000, 20, true) assert.Equal(t, 250, res[0].Gain) assert.Equal(t, 250, res[1].Gain) assert.Equal(t, 250, res[2].Gain) @@ -47,7 +47,7 @@ func Test_processPot(t *testing.T) { {1, []*PokerPlayer{p2, p4, p1, p3}}, } sortGameResults(arr) - res = processPot(arr, 1000) + res, _ = processPot(arr, 1000, 20, true) assert.Equal(t, 40, res[0].Gain) assert.Equal(t, 70, res[1].Gain) assert.Equal(t, 445, res[2].Gain) @@ -60,7 +60,7 @@ func Test_processPot(t *testing.T) { {2, []*PokerPlayer{p1}}, } sortGameResults(arr) - res = processPot(arr, 1000) + res, _ = processPot(arr, 1000, 20, true) assert.Equal(t, 1, len(res)) assert.Equal(t, "p2", res[0].Player.Username) assert.Equal(t, 1000, res[0].Gain) @@ -75,7 +75,7 @@ func Test_processPot(t *testing.T) { {2, []*PokerPlayer{p4}}, } sortGameResults(arr) - res = processPot(arr, 23) + res, _ = processPot(arr, 23, 20, true) assert.Equal(t, 3, len(res)) assert.Equal(t, 8, res[0].Gain) assert.Equal(t, 8, res[1].Gain) @@ -88,7 +88,7 @@ func Test_processPot(t *testing.T) { {2, []*PokerPlayer{p1}}, } sortGameResults(arr) - res = processPot(arr, 1560) + res, _ = processPot(arr, 1560, 20, true) assert.Equal(t, 2, len(res)) assert.Equal(t, 1300, res[0].Gain) assert.Equal(t, 260, res[1].Gain)