Merge branch 'master' of git://git.assembla.com/fpdb
This commit is contained in:
		
						commit
						792e66c2b5
					
				|  | @ -2115,6 +2115,32 @@ class Database: | |||
|         result = c.fetchall() | ||||
|         return result | ||||
|     #end def getTourneyTypesIds | ||||
| 
 | ||||
|     def getTourneyInfo(self, siteName, tourneyNo): | ||||
|         c = self.get_cursor() | ||||
|         c.execute(self.sql.query['getTourneyInfo'], (siteName, tourneyNo)) | ||||
|         columnNames=c.description | ||||
|          | ||||
|         names=[] | ||||
|         for column in columnNames: | ||||
|             names.append(column[0]) | ||||
|          | ||||
|         data=c.fetchone() | ||||
|         return (names,data) | ||||
|     #end def getTourneyInfo | ||||
|      | ||||
|     def getTourneyPlayerInfo(self, siteName, tourneyNo, playerName): | ||||
|         c = self.get_cursor() | ||||
|         c.execute(self.sql.query['getTourneyPlayerInfo'], (siteName, tourneyNo, playerName)) | ||||
|         columnNames=c.description | ||||
|          | ||||
|         names=[] | ||||
|         for column in columnNames: | ||||
|             names.append(column[0]) | ||||
|          | ||||
|         data=c.fetchone() | ||||
|         return (names,data) | ||||
|     #end def getTourneyPlayerInfo | ||||
| #end class Database | ||||
| 
 | ||||
| # Class used to hold all the data needed to write a hand to the db | ||||
|  |  | |||
							
								
								
									
										139
									
								
								pyfpdb/GuiTourneyViewer.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								pyfpdb/GuiTourneyViewer.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,139 @@ | |||
| #!/usr/bin/python | ||||
| # -*- coding: utf-8 -*- | ||||
| 
 | ||||
| #Copyright 2010 Steffen Schaumburg | ||||
| #This program is free software: you can redistribute it and/or modify | ||||
| #it under the terms of the GNU Affero General Public License as published by | ||||
| #the Free Software Foundation, version 3 of the License. | ||||
| # | ||||
| #This program is distributed in the hope that it will be useful, | ||||
| #but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
| #GNU General Public License for more details. | ||||
| # | ||||
| #You should have received a copy of the GNU Affero General Public License | ||||
| #along with this program. If not, see <http://www.gnu.org/licenses/>. | ||||
| #In the "official" distribution you can find the license in agpl-3.0.txt. | ||||
| 
 | ||||
| import threading | ||||
| import pygtk | ||||
| pygtk.require('2.0') | ||||
| import gtk | ||||
| 
 | ||||
| class GuiTourneyViewer (threading.Thread): | ||||
|     def __init__(self, config, db, sql, mainwin, debug=True): | ||||
|         self.db = db | ||||
|          | ||||
|         self.mainVBox = gtk.VBox() | ||||
|         self.interfaceHBox = gtk.HBox() | ||||
|         self.mainVBox.pack_start(self.interfaceHBox, expand=False) | ||||
|          | ||||
|         self.siteBox = gtk.combo_box_new_text() | ||||
|         for site in config.supported_sites: | ||||
|             self.siteBox.append_text(site) | ||||
|         self.siteBox.set_active(0) | ||||
|         self.interfaceHBox.add(self.siteBox) | ||||
|          | ||||
|         label=gtk.Label("Enter the tourney number you want to display:") | ||||
|         self.interfaceHBox.add(label) | ||||
|          | ||||
|         self.entryTourney = gtk.Entry() | ||||
|         self.interfaceHBox.add(self.entryTourney) | ||||
|          | ||||
|         self.displayButton = gtk.Button("_Display") | ||||
|         self.displayButton.connect('clicked', self.displayClicked) | ||||
|         self.interfaceHBox.add(self.displayButton) | ||||
|          | ||||
|         self.entryPlayer = gtk.Entry() | ||||
|         self.interfaceHBox.add(self.entryPlayer) | ||||
|          | ||||
|         self.playerButton = gtk.Button("Display _Player") | ||||
|         self.playerButton.connect('clicked', self.displayPlayerClicked) | ||||
|         self.interfaceHBox.add(self.playerButton) | ||||
|          | ||||
|         self.table = gtk.Table(columns=10, rows=9) | ||||
|         self.mainVBox.add(self.table) | ||||
|          | ||||
|         self.mainVBox.show_all() | ||||
|     #end def __init__ | ||||
|      | ||||
|     def displayClicked(self, widget, data=None): | ||||
|         if self.prepare(10, 9): | ||||
|             result=self.db.getTourneyInfo(self.siteName, self.tourneyNo) | ||||
|             if result[1] == None: | ||||
|                 self.table.destroy() | ||||
|                 self.errorLabel=gtk.Label("Tournament not found - please ensure you imported it and selected the correct site") | ||||
|                 self.mainVBox.add(self.errorLabel) | ||||
|             else: | ||||
|                 x=0 | ||||
|                 y=0 | ||||
|                 for i in range(1,len(result[0])): | ||||
|                     if y==9: | ||||
|                         x+=2 | ||||
|                         y=0 | ||||
|              | ||||
|                     label=gtk.Label(result[0][i]) | ||||
|                     self.table.attach(label,x,x+1,y,y+1) | ||||
|              | ||||
|                     if result[1][i]==None: | ||||
|                         label=gtk.Label("N/A") | ||||
|                     else: | ||||
|                         label=gtk.Label(result[1][i]) | ||||
|                     self.table.attach(label,x+1,x+2,y,y+1) | ||||
|              | ||||
|                     y+=1 | ||||
|         self.mainVBox.show_all() | ||||
|     #def displayClicked | ||||
|      | ||||
|     def displayPlayerClicked(self, widget, data=None): | ||||
|         if self.prepare(4, 5): | ||||
|             result=self.db.getTourneyPlayerInfo(self.siteName, self.tourneyNo, self.playerName) | ||||
|             if result[1] == None: | ||||
|                 self.table.destroy() | ||||
|                 self.errorLabel=gtk.Label("Player or tourney not found - please ensure you imported it and selected the correct site") | ||||
|                 self.mainVBox.add(self.errorLabel) | ||||
|             else: | ||||
|                 x=0 | ||||
|                 y=0 | ||||
|                 for i in range(1,len(result[0])): | ||||
|                     if y==5: | ||||
|                         x+=2 | ||||
|                         y=0 | ||||
|                  | ||||
|                     label=gtk.Label(result[0][i]) | ||||
|                     self.table.attach(label,x,x+1,y,y+1) | ||||
|                  | ||||
|                     if result[1][i]==None: | ||||
|                         label=gtk.Label("N/A") | ||||
|                     else: | ||||
|                         label=gtk.Label(result[1][i]) | ||||
|                     self.table.attach(label,x+1,x+2,y,y+1) | ||||
|                  | ||||
|                     y+=1 | ||||
|         self.mainVBox.show_all() | ||||
|     #def displayPlayerClicked | ||||
|      | ||||
|     def get_vbox(self): | ||||
|         """returns the vbox of this thread""" | ||||
|         return self.mainVBox | ||||
|     #end def get_vbox | ||||
|      | ||||
|     def prepare(self, columns, rows): | ||||
|         try: self.errorLabel.destroy() | ||||
|         except: pass | ||||
|          | ||||
|         try: | ||||
|             self.tourneyNo=int(self.entryTourney.get_text()) | ||||
|         except ValueError: | ||||
|             self.errorLabel=gtk.Label("invalid entry in tourney number - must enter numbers only") | ||||
|             self.mainVBox.add(self.errorLabel) | ||||
|             return False | ||||
|         self.siteName=self.siteBox.get_active_text() | ||||
|         self.playerName=self.entryPlayer.get_text() | ||||
|          | ||||
|         self.table.destroy() | ||||
|         self.table=gtk.Table(columns=columns, rows=rows) | ||||
|         self.mainVBox.add(self.table) | ||||
|         return True | ||||
|     #end def readInfo | ||||
| #end class GuiTourneyViewer | ||||
|  | @ -1336,8 +1336,6 @@ class Sql: | |||
|                 and   (p.siteId = %s or %s = -1) | ||||
|             """ | ||||
| 
 | ||||
|         self.query['getSiteId'] = """SELECT id from Sites where name = %s""" | ||||
| 
 | ||||
|         self.query['get_stats_from_hand'] = """ | ||||
|                 SELECT hc.playerId                      AS player_id, | ||||
|                     hp.seatNo                           AS seat, | ||||
|  | @ -2010,8 +2008,6 @@ class Sql: | |||
|         self.query['getPlayerIdBySite'] = """SELECT id from Players where name = %s AND siteId = %s""" | ||||
| 
 | ||||
|         # used in *Filters: | ||||
|         self.query['getSiteId'] = """SELECT id from Sites where name = %s""" | ||||
|         self.query['getGames'] = """SELECT DISTINCT category from Gametypes""" | ||||
|         #self.query['getLimits'] = already defined further up | ||||
|         self.query['getLimits2'] = """SELECT DISTINCT type, limitType, bigBlind  | ||||
|                                       from Gametypes | ||||
|  | @ -2992,7 +2988,6 @@ class Sql: | |||
|                 ,playerId | ||||
|                 ,activeSeats | ||||
|                 ,position | ||||
|                 ,tourneyTypeId | ||||
|                 ,styleKey | ||||
|                 ,HDs | ||||
|                 ,wonWhenSeenStreet1 | ||||
|  | @ -3082,7 +3077,6 @@ class Sql: | |||
|                             when hp.position = '9' then 'E' | ||||
|                             else 'E' | ||||
|                        end                                            AS hc_position | ||||
|                       ,t.tourneyTypeId | ||||
|                       ,date_format(h.startTime, 'd%y%m%d') | ||||
|                       ,count(1) | ||||
|                       ,sum(wonWhenSeenStreet1) | ||||
|  | @ -3156,14 +3150,11 @@ class Sql: | |||
|                       ,sum(hp.street4Raises) | ||||
|                 FROM HandsPlayers hp | ||||
|                 INNER JOIN Hands h ON (h.id = hp.handId) | ||||
|                 INNER JOIN TourneysPlayers tp ON (tp.id = hp.tourneysPlayersId) | ||||
|                 INNER JOIN Tourneys t ON (t.id = tp.tourneyId) | ||||
|                 <where_clause> | ||||
|                 GROUP BY h.gametypeId | ||||
|                         ,hp.playerId | ||||
|                         ,h.seats | ||||
|                         ,hc_position | ||||
|                         ,t.tourneyTypeId | ||||
|                         ,date_format(h.startTime, 'd%y%m%d') | ||||
| """ | ||||
|         elif db_server == 'postgresql': | ||||
|  | @ -3173,7 +3164,6 @@ class Sql: | |||
|                 ,playerId | ||||
|                 ,activeSeats | ||||
|                 ,position | ||||
|                 ,tourneyTypeId | ||||
|                 ,styleKey | ||||
|                 ,HDs | ||||
|                 ,wonWhenSeenStreet1 | ||||
|  | @ -3263,7 +3253,6 @@ class Sql: | |||
|                             when hp.position = '9' then 'E' | ||||
|                             else 'E' | ||||
|                        end                                            AS hc_position | ||||
|                       ,t.tourneyTypeId | ||||
|                       ,'d' || to_char(h.startTime, 'YYMMDD') | ||||
|                       ,count(1) | ||||
|                       ,sum(wonWhenSeenStreet1) | ||||
|  | @ -3337,14 +3326,11 @@ class Sql: | |||
|                       ,sum(CAST(hp.street4Raises as integer)) | ||||
|                 FROM HandsPlayers hp | ||||
|                 INNER JOIN Hands h ON (h.id = hp.handId) | ||||
|                 INNER JOIN TourneysPlayers tp ON (tp.id = hp.tourneysPlayersId) | ||||
|                 INNER JOIN Tourneys t ON (t.id = tp.tourneyId) | ||||
|                 <where_clause> | ||||
|                 GROUP BY h.gametypeId | ||||
|                         ,hp.playerId | ||||
|                         ,h.seats | ||||
|                         ,hc_position | ||||
|                         ,t.tourneyTypeId | ||||
|                         ,to_char(h.startTime, 'YYMMDD') | ||||
| """ | ||||
|         else:   # assume sqlite | ||||
|  | @ -3354,7 +3340,6 @@ class Sql: | |||
|                 ,playerId | ||||
|                 ,activeSeats | ||||
|                 ,position | ||||
|                 ,tourneyTypeId | ||||
|                 ,styleKey | ||||
|                 ,HDs | ||||
|                 ,wonWhenSeenStreet1 | ||||
|  | @ -3444,7 +3429,6 @@ class Sql: | |||
|                             when hp.position = '9' then 'E' | ||||
|                             else 'E' | ||||
|                        end                                            AS hc_position | ||||
|                       ,t.tourneyTypeId | ||||
|                       ,'d' || substr(strftime('%Y%m%d', h.startTime),3,7) | ||||
|                       ,count(1) | ||||
|                       ,sum(wonWhenSeenStreet1) | ||||
|  | @ -3518,14 +3502,11 @@ class Sql: | |||
|                       ,sum(CAST(hp.street4Raises as integer)) | ||||
|                 FROM HandsPlayers hp | ||||
|                 INNER JOIN Hands h ON (h.id = hp.handId) | ||||
|                 INNER JOIN TourneysPlayers tp ON (tp.id = hp.tourneysPlayersId) | ||||
|                 INNER JOIN Tourneys t ON (t.id = tp.tourneyId) | ||||
|                 <where_clause> | ||||
|                 GROUP BY h.gametypeId | ||||
|                         ,hp.playerId | ||||
|                         ,h.seats | ||||
|                         ,hc_position | ||||
|                         ,t.tourneyTypeId | ||||
|                         ,'d' || substr(strftime('%Y%m%d', h.startTime),3,7) | ||||
| """ | ||||
| 
 | ||||
|  | @ -3812,6 +3793,22 @@ class Sql: | |||
|                                         WHERE tt.siteId=%s AND t.siteTourneyNo=%s | ||||
|         """ | ||||
| 
 | ||||
|         self.query['getTourneyInfo'] = """SELECT tt.*, t.* | ||||
|                                         FROM Tourneys t | ||||
|                                         INNER JOIN TourneyTypes tt ON (t.tourneyTypeId = tt.id) | ||||
|                                         INNER JOIN Sites s ON (tt.siteId = s.id) | ||||
|                                         WHERE s.name=%s AND t.siteTourneyNo=%s | ||||
|         """ | ||||
| 
 | ||||
|         self.query['getTourneyPlayerInfo'] = """SELECT tp.* | ||||
|                                         FROM Tourneys t | ||||
|                                         INNER JOIN TourneyTypes tt ON (t.tourneyTypeId = tt.id) | ||||
|                                         INNER JOIN Sites s ON (tt.siteId = s.id) | ||||
|                                         INNER JOIN TourneysPlayers tp ON (tp.tourneyId = t.id) | ||||
|                                         INNER JOIN Players p ON (p.id = tp.playerId) | ||||
|                                         WHERE s.name=%s AND t.siteTourneyNo=%s AND p.name=%s | ||||
|         """ | ||||
|          | ||||
|         self.query['insertTourney'] = """INSERT INTO Tourneys | ||||
|                                             (tourneyTypeId, siteTourneyNo, entries, prizepool, | ||||
|                                              startTime, endTime, tourneyName, matrixIdProcessed, | ||||
|  |  | |||
|  | @ -106,6 +106,7 @@ import GuiBulkImport | |||
| import ImapFetcher | ||||
| import GuiRingPlayerStats | ||||
| import GuiTourneyPlayerStats | ||||
| import GuiTourneyViewer | ||||
| import GuiPositionalStats | ||||
| import GuiAutoImport | ||||
| import GuiGraphViewer | ||||
|  | @ -794,6 +795,7 @@ class fpdb: | |||
|                   <menuitem action="graphs"/> | ||||
|                   <menuitem action="ringplayerstats"/> | ||||
|                   <menuitem action="tourneyplayerstats"/> | ||||
|                   <menuitem action="tourneyviewer"/> | ||||
|                   <menuitem action="posnstats"/> | ||||
|                   <menuitem action="sessionstats"/> | ||||
|                 </menu> | ||||
|  | @ -833,6 +835,7 @@ class fpdb: | |||
|                                  ('graphs', None, '_Graphs', '<control>G', 'Graphs', self.tabGraphViewer), | ||||
|                                  ('ringplayerstats', None, 'Ring _Player Stats (tabulated view)', '<control>P', 'Ring Player Stats (tabulated view)', self.tab_ring_player_stats), | ||||
|                                  ('tourneyplayerstats', None, '_Tourney Player Stats (tabulated view, mysql only)', '<control>T', 'Tourney Player Stats (tabulated view, mysql only)', self.tab_tourney_player_stats), | ||||
|                                  ('tourneyviewer', None, 'Tourney _Viewer', None, 'Tourney Viewer)', self.tab_tourney_viewer_stats), | ||||
|                                  ('posnstats', None, 'P_ositional Stats (tabulated view)', '<control>O', 'Positional Stats (tabulated view)', self.tab_positional_stats), | ||||
|                                  ('sessionstats', None, 'Session Stats', None, 'Session Stats', self.tab_session_stats), | ||||
|                                  ('database', None, '_Database'), | ||||
|  | @ -1033,6 +1036,12 @@ class fpdb: | |||
|         ps_tab=new_ps_thread.get_vbox() | ||||
|         self.add_and_display_tab(ps_tab, "Tourney Player Stats") | ||||
| 
 | ||||
|     def tab_tourney_viewer_stats(self, widget, data=None): | ||||
|         new_thread = GuiTourneyViewer.GuiTourneyViewer(self.config, self.db, self.sql, self.window) | ||||
|         self.threads.append(new_thread) | ||||
|         tab=new_thread.get_vbox() | ||||
|         self.add_and_display_tab(tab, "Tourney Viewer") | ||||
| 
 | ||||
|     def tab_positional_stats(self, widget, data=None): | ||||
|         new_ps_thread = GuiPositionalStats.GuiPositionalStats(self.config, self.sql) | ||||
|         self.threads.append(new_ps_thread) | ||||
|  |  | |||
|  | @ -0,0 +1,63 @@ | |||
| Game #9485557849 starts. | ||||
| 
 | ||||
| #Game No : 9485557849  | ||||
| ***** Hand History for Game 9485557849 ***** | ||||
| $0.80 USD NL Texas Hold'em - Saturday, July 31, 13:52:16 EDT 2010 | ||||
| Table 20BB Min Speed #1770998 (Real Money) | ||||
| Seat 1 is the button | ||||
| Total number of players : 4/9  | ||||
| Seat 3: FErki84 ( $1.64 USD ) | ||||
| Seat 5: Vandercasses ( $0.01 USD ) | ||||
| Seat 9: jeremyho888 ( $1.02 USD ) | ||||
| Seat 1: sergeodem ( $1.20 USD ) | ||||
| FErki84 posts small blind [$0.01 USD]. | ||||
| Vandercasses posts big blind [$0.01 USD]. | ||||
| ** Dealing down cards ** | ||||
| Dealt to FErki84 [  8h Kc ] | ||||
| jeremyho888 folds | ||||
| sergeodem calls [$0.02 USD] | ||||
| FErki84 calls [$0.01 USD] | ||||
| ** Dealing Flop ** [ Td, 7c, 9h ] | ||||
| FErki84 checks | ||||
| sergeodem checks | ||||
| ** Dealing Turn ** [ 3h ] | ||||
| FErki84 checks | ||||
| sergeodem checks | ||||
| ** Dealing River ** [ Jc ] | ||||
| FErki84 bets [$0.04 USD] | ||||
| sergeodem folds | ||||
| FErki84 shows [ 8h, Kc ]a straight, Seven to Jack. | ||||
| Vandercasses doesn't show [ Ts, Jd ]two pairs, Jacks and Tens. | ||||
| FErki84 wins $0.06 USD from the side pot 1 with a straight, Seven to Jack. | ||||
| FErki84 wins $0.03 USD from the main pot with a straight, Seven to Jack. | ||||
| Vandercasses has left the table. | ||||
| 
 | ||||
| Game #9498788316 starts. | ||||
| 
 | ||||
| #Game No : 9498788316  | ||||
| ***** Hand History for Game 9498788316 ***** | ||||
| $1.60 USD NL Texas Hold'em - Wednesday, August 04, 15:02:33 EDT 2010 | ||||
| Table 20BB Min #1847547 (No DP) (Real Money) | ||||
| Seat 2 is the button | ||||
| Total number of players : 5/6  | ||||
| Seat 5: CepguTbIu999 ( $1.60 USD ) | ||||
| Seat 1: Daytona_955 ( $2.45 USD ) | ||||
| Seat 4: FErki84 ( $2.18 USD ) | ||||
| Seat 2: anjl2009 ( $2.80 USD ) | ||||
| Seat 3: lukeman2 ( $0.01 USD ) | ||||
| lukeman2 posts small blind [$0.01 USD]. | ||||
| FErki84 posts big blind [$0.04 USD]. | ||||
| ** Dealing down cards ** | ||||
| Dealt to FErki84 [  6s 2c ] | ||||
| CepguTbIu999 folds | ||||
| Daytona_955 folds | ||||
| anjl2009 folds | ||||
| ** Dealing Flop ** [ 9d, Ah, 3h ] | ||||
| ** Dealing Turn ** [ Js ] | ||||
| ** Dealing River ** [ Kc ] | ||||
| lukeman2 shows [ 5h, 5s ]a pair of Fives. | ||||
| FErki84 shows [ 6s, 2c ]high card Ace. | ||||
| FErki84 wins $0.03 USD from the side pot 1 with high card, Ace. | ||||
| lukeman2 wins $0.02 USD from the main pot with a pair of Fives. | ||||
| lukeman2 has left the table. | ||||
| 
 | ||||
|  | @ -0,0 +1,41 @@ | |||
| ***** Hand History For Game 9423586142 ***** | ||||
| 0.01/0.02 Texas Hold'em Game Table (NL)  -  Mon Jul 12 13:38:32 EDT 2010 | ||||
| Table 20BB Min Speed #1775757  (Real Money) -- Seat 1 is the button | ||||
| Total number of players : 9/9 | ||||
| Seat 1: Player1 ($0.95) | ||||
| Seat 2: Player2 ($0.57) | ||||
| Seat 3: Player3 ($0.86) | ||||
| Seat 4: Player4 ($1.71) | ||||
| Seat 5: Player5 ($1.76) | ||||
| Seat 6: Player6 ($0.44) | ||||
| Seat 7: Player7 ($0.76) | ||||
| Seat 8: Player8 ($0.68) | ||||
| Seat 9: Player9 ($0.38) | ||||
| Player2 posts small blind (0.01) | ||||
| Player3 posts big blind (0.02) | ||||
| ** Dealing down cards ** | ||||
| Dealt to Player5 [ Tc, 9d ] | ||||
| Player5 folds | ||||
| Player6 calls (0.02) | ||||
| Player8 folds | ||||
| Player9 folds | ||||
| Player1 folds | ||||
| Player2 calls (0.01) | ||||
| Player3 raises 0.06 to 0.08 | ||||
| Player6 calls (0.06) | ||||
| Player2 folds | ||||
| ** Dealing Flop ** :  [ 5s, 7h, 6h ] | ||||
| Player3 bets (0.13) | ||||
| Player6 folds | ||||
| ** Summary ** | ||||
| Main Pot: $0.18 Rake: $0 | ||||
| Board: [ 5s 7h 6h ] | ||||
| Player1 balance $0.95, didn't bet (folded) | ||||
| Player2 balance $0.55, lost $0.02 (folded) | ||||
| Player3 balance $0.96, bet $0.21, collected $0.31, net +$0.1 | ||||
| Player4 balance $1.71, sits out | ||||
| Player5 balance $1.76, didn't bet (folded) | ||||
| Player6 balance $0.36, lost $0.08 (folded) | ||||
| Player7 balance $0.76, sits out | ||||
| Player8 balance $0.68, didn't bet (folded) | ||||
| Player9 balance $0.38, didn't bet (folded) | ||||
|  | @ -0,0 +1,37 @@ | |||
| ***** Hand History For Game 9336845949 ***** | ||||
| 30/60 Tourney Texas Hold'em Game Table (NL)  (STT Tournament #52792286)  -  Sun Jun 13 12:21:39 EDT 2010 | ||||
| Table  174827  (Real Money) -- Seat 6 is the button | ||||
| Total number of players : 6/6 | ||||
| Seat 1: Player1 (1520) | ||||
| Seat 2: Player2 (1540) | ||||
| Seat 3: Player3 (2120) | ||||
| Seat 4: Player4 (2460) | ||||
| Seat 5: Player5 (2600) | ||||
| Seat 6: Player6 (1760) | ||||
| Player1 posts small blind (30) | ||||
| Player2 posts big blind (60) | ||||
| ** Dealing down cards ** | ||||
| Dealt to Player5 [ Jc, Js ] | ||||
| Player3 folds | ||||
| Player4 folds | ||||
| Player6 folds | ||||
| Player1 calls (210) | ||||
| Player2 folds | ||||
| ** Dealing Flop ** :  [ 4h, 7d, 5c ] | ||||
| Player1 checks | ||||
| Player1 calls (450) | ||||
| ** Dealing Turn ** :  [ Kd ]  | ||||
| Player1 checks | ||||
| Player1 calls (830) | ||||
| Player1 is all-In. | ||||
| ** Dealing River ** :  [ Jd ]  | ||||
| Creating Main Pot with 3100 with Player1 | ||||
| ** Summary ** | ||||
| Main Pot: 3100 | ||||
| Board: [ 4h 7d 5c Kd Jd ] | ||||
| Player1 balance 0, lost 1520 [ Ks 6c ] [ a pair of kings -- Ks,Kd,Jd,7d,6c ] | ||||
| Player2 balance 1480, lost 60 (folded) | ||||
| Player3 balance 2120, didn't bet (folded) | ||||
| Player4 balance 2460, didn't bet (folded) | ||||
| Player5 balance 4180, bet 1520, collected 3100, net +1580 [ Jc Js ] [ three of a kind, jacks -- Kd,Jc,Js,Jd,7d ] | ||||
| Player6 balance 1760, didn't bet (folded) | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user