dkforest

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

commit 884810037e028676294052f31f677bbb3f5e9661
parent aaf90291358aef5079ecc26801a9203dcdcda74e
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 11 Dec 2023 21:54:16 -0500

cleanup

Diffstat:
Mpkg/web/handlers/poker/events.go | 12++++++------
Mpkg/web/handlers/poker/poker.go | 33+++++++++++++++++----------------
2 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/pkg/web/handlers/poker/events.go b/pkg/web/handlers/poker/events.go @@ -12,7 +12,7 @@ type PokerEvent struct { } type GameStartedEvent struct { - DealerIdx int + DealerSeatIdx int } type GameIsDoneEvent struct { @@ -24,11 +24,11 @@ type ResetCardsEvent struct { } type PlayerBetEvent struct { - PlayerIdx int - Player string - Bet int - TotalBet int - Cash int + PlayerSeatIdx int + Player string + Bet int + TotalBet int + Cash int } type LogEvent struct { diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -53,9 +53,9 @@ func (p *Poker) GetOrCreateGame(roomID string) *PokerGame { g = &PokerGame{ PlayersEventCh: make(chan PlayerEvent), Players: make([]*PokerStandingPlayer, NbPlayers), - DealerIdx: atomic.Int32{}, + DealerSeatIdx: atomic.Int32{}, } - g.DealerIdx.Store(-1) + g.DealerSeatIdx.Store(-1) p.games[roomID] = g } return g @@ -143,7 +143,7 @@ type PokerGame struct { Players []*PokerStandingPlayer PlayersMtx sync.RWMutex Ongoing *Ongoing - DealerIdx atomic.Int32 // Dealer seat idx + DealerSeatIdx atomic.Int32 smallBlindIdx int bigBlindIdx int IsGameStarted atomic.Bool @@ -288,7 +288,7 @@ func isRoundSettled(players []*PokerPlayer) bool { func (g *PokerGame) incrDealerIdx() { nbPlayers := len(g.Ongoing.Players) - dealerSeatIdx := g.DealerIdx.Load() + dealerSeatIdx := g.DealerSeatIdx.Load() var dealerPlayer *PokerPlayer for { dealerSeatIdx = (dealerSeatIdx + 1) % NbPlayers @@ -297,7 +297,7 @@ func (g *PokerGame) incrDealerIdx() { break } } - g.DealerIdx.Store(dealerSeatIdx) + g.DealerSeatIdx.Store(dealerSeatIdx) dealerIdx := g.Ongoing.getPlayerIdxBySeatIdx(int(dealerSeatIdx)) g.smallBlindIdx = (int(dealerIdx) + 1) % nbPlayers g.bigBlindIdx = (int(dealerIdx) + 2) % nbPlayers @@ -433,7 +433,7 @@ func waitPlayersActionFn(g *PokerGame, roomID string, skip, minBet int) bool { roomTopic := "room_" + roomID roomLogsTopic := "room_" + roomID + "_logs" playerAlive := 0 - dealerSeatIdx := int(g.DealerIdx.Load()) + dealerSeatIdx := int(g.DealerSeatIdx.Load()) dealerIdx := g.Ongoing.getPlayerIdxBySeatIdx(dealerSeatIdx) playerToPlayIdx := (dealerIdx + skip) % len(g.Ongoing.Players) lastRaisePlayerIdx := -1 @@ -556,7 +556,7 @@ OUTER: newLogEvent(g, roomLogsTopic, fmt.Sprintf("%s check", p.Username)) } else { p.doBet(bet) - PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash}) + PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash}) logMsg := fmt.Sprintf("%s call (%d)", p.Username, bet) if p.isAllIn() { logMsg += " (all-in)" @@ -572,7 +572,7 @@ OUTER: } minBet = p.Bet + bet p.doBet(bet) - PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash}) + PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash}) logMsg := fmt.Sprintf("%s all-in (%d)", p.Username, bet) if p.isAllIn() { newlyAllInPlayers = append(newlyAllInPlayers, p) @@ -596,7 +596,7 @@ OUTER: } minBet = p.Bet + bet p.doBet(bet) - PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash}) + PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash}) logMsg := fmt.Sprintf("%s bet %d", p.Username, bet) if p.isAllIn() { logMsg += " (all-in)" @@ -655,6 +655,7 @@ type Seat struct { Left2 int } +// Positions of the dealer token for each seats var dealerTokenPos = [][]int{ {125, 714}, {246, 732}, @@ -761,13 +762,13 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) { g.Ongoing.CommunityCards = append(g.Ongoing.CommunityCards, card) } - PokerPubSub.Pub(roomTopic, GameStartedEvent{DealerIdx: int(g.DealerIdx.Load())}) + PokerPubSub.Pub(roomTopic, GameStartedEvent{DealerSeatIdx: int(g.DealerSeatIdx.Load())}) newLogEvent(g, roomLogsTopic, fmt.Sprintf("-- New game --")) p := g.Ongoing.Players[g.smallBlindIdx] bet := SmallBlindBet p.doBet(bet) - PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash}) + PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash}) newLogEvent(g, roomLogsTopic, fmt.Sprintf("%s small blind %d", p.Username, bet)) time.Sleep(time.Second) @@ -775,7 +776,7 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) { p = g.Ongoing.Players[g.bigBlindIdx] bet = BigBlindBet p.doBet(bet) - PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash}) + PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash}) newLogEvent(g, roomLogsTopic, fmt.Sprintf("%s big blind %d", p.Username, bet)) time.Sleep(time.Second) @@ -1191,7 +1192,7 @@ func colorForCard1(name string) string { func buildDealerTokenHtml(g *PokerGame) (html string) { html += `<div id="dealerToken"><div class="inner"></div></div>` if g.Ongoing != nil { - pos := dealerTokenPos[g.DealerIdx.Load()] + pos := dealerTokenPos[g.DealerSeatIdx.Load()] html += `<style>#dealerToken { top: ` + itoa(pos[0]) + `px; left: ` + itoa(pos[1]) + `px; }</style>` } return @@ -1453,14 +1454,14 @@ func drawErrorMsgEvent(evt ErrorMsgEvent) string { func drawPlayerBetEvent(evt PlayerBetEvent) (html string) { html += `<style>` - html += `#seat` + itoa(evt.PlayerIdx+1) + `Pot:before { content: "` + itoa(evt.TotalBet) + `"; }` - html += `#seat` + itoa(evt.PlayerIdx+1) + `_cash:before { content: "` + itoa(evt.Cash) + `"; }` + html += `#seat` + itoa(evt.PlayerSeatIdx+1) + `Pot:before { content: "` + itoa(evt.TotalBet) + `"; }` + html += `#seat` + itoa(evt.PlayerSeatIdx+1) + `_cash:before { content: "` + itoa(evt.Cash) + `"; }` html += `</style>` return } func drawGameStartedEvent(evt GameStartedEvent) string { - pos := dealerTokenPos[evt.DealerIdx] + pos := dealerTokenPos[evt.DealerSeatIdx] return `<style>#dealerToken { top: ` + itoa(pos[0]) + `px; left: ` + itoa(pos[1]) + `px; }</style>` }