dkforest

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

commit 90caa0462b477c17469206fb1cf09dff27cc4429
parent 89606507485c9b8ccf5321607a21bbdc8a5ce4bf
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Fri,  8 Dec 2023 04:50:00 -0500

cleanup

Diffstat:
Mpkg/web/handlers/poker/poker.go | 59+++++++++++++++++++++++++++++------------------------------
1 file changed, 29 insertions(+), 30 deletions(-)

diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -329,6 +329,23 @@ func reorderPlayers[T any](players []T, dealerIdx int) (out []T) { return } +func showCards(g *PokerGame, roomTopic string, seats []Seat) { + for _, p := range g.Ongoing.Players { + if !p.Folded { + p.CardsMtx.RLock() + firstCard := p.Cards[0] + secondCard := p.Cards[1] + p.CardsMtx.RUnlock() + seatData := seats[p.SeatIdx] + evt1 := PokerEvent{ID: "card" + itoa(firstCard.Idx), Name: firstCard.Name, Idx: firstCard.Idx, Top: seatData.Top, Left: seatData.Left, Reveal: true} + evt2 := PokerEvent{ID: "card" + itoa(secondCard.Idx), Name: secondCard.Name, Idx: secondCard.Idx, Top: seatData.Top, Left: seatData.Left + 53, Reveal: true} + PokerPubSub.Pub(roomTopic, evt1) + PokerPubSub.Pub(roomTopic, evt2) + g.Ongoing.AddEvent(evt1, evt2) + } + } +} + // Return either or not the game ended because only 1 player left playing func waitPlayersActionFn(g *PokerGame, roomID string, skip, minBet int) bool { roomTopic := "room_" + roomID @@ -538,6 +555,14 @@ OUTER: return playerAlive == 1 } +type Seat struct { + Top int + Left int + Angle string + Top2 int + Left2 int +} + func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) { roomTopic := "room_" + roomID roomLogsTopic := "room_" + roomID + "_logs" @@ -545,13 +570,6 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) { g.incrDealerIdx() - type Seat struct { - Top int - Left int - Angle string - Top2 int - Left2 int - } seats := []Seat{ {Top: 50, Left: 600, Top2: 50 + 5, Left2: 600 + 5, Angle: "-90deg"}, {Top: 150, Left: 574, Top2: 150 + 5, Left2: 574 + 3, Angle: "-80deg"}, @@ -654,11 +672,9 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) { goto END } - // Burn + // Flop (3 first cards) time.Sleep(time.Second) burnCard() - - // Flop (3 first cards) for i := 1; i <= 3; i++ { time.Sleep(time.Second) dealCard() @@ -670,11 +686,9 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) { goto END } - // Burn + // Turn (4th card) time.Sleep(time.Second) burnCard() - - // Turn (4th card) time.Sleep(time.Second) dealCard() @@ -684,11 +698,9 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) { goto END } - // Burn + // River (5th card) time.Sleep(time.Second) burnCard() - - // River (5th card) time.Sleep(time.Second) dealCard() @@ -699,20 +711,7 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) { } // Show cards - for _, p := range g.Ongoing.Players { - if !p.Folded { - p.CardsMtx.RLock() - firstCard := p.Cards[0] - secondCard := p.Cards[1] - p.CardsMtx.RUnlock() - seatData := seats[p.SeatIdx] - evt1 := PokerEvent{ID: "card" + itoa(firstCard.Idx), Name: firstCard.Name, Idx: firstCard.Idx, Top: seatData.Top, Left: seatData.Left, Reveal: true} - evt2 := PokerEvent{ID: "card" + itoa(secondCard.Idx), Name: secondCard.Name, Idx: secondCard.Idx, Top: seatData.Top, Left: seatData.Left + 53, Reveal: true} - PokerPubSub.Pub(roomTopic, evt1) - PokerPubSub.Pub(roomTopic, evt2) - g.Ongoing.AddEvent(evt1, evt2) - } - } + showCards(g, roomTopic, seats) winners = g.Ongoing.computeWinners()