[opentestbed] push by thijs.le...@gmail.com - tlsbot complete on 2011-05-13 11:47 GMT

31 views
Skip to first unread message

opent...@googlecode.com

unread,
May 13, 2011, 7:47:44 AM5/13/11
to opent...@googlegroups.com
Revision: 37047602a342
Author: thijs
Date: Fri May 13 04:46:54 2011
Log: tlsbot complete
http://code.google.com/p/opentestbed/source/detail?r=37047602a342

Added:
/data/110504-0623-history.txt
/data/110505-1157-history.txt
/data/mctsbot/Agt 1 (DemoBotSimpleBot)/arff/PostCheckBet.arff
/data/mctsbot/Agt 1 (DemoBotSimpleBot)/arff/PostFoldCallRaise.arff
/data/mctsbot/Agt 1 (DemoBotSimpleBot)/arff/PreCheckBet.arff
/data/mctsbot/Agt 1 (DemoBotSimpleBot)/arff/PreFoldCallRaise.arff
/data/mctsbot/Agt 1 (DemoBotSimpleBot)/arff/Showdown.arff
/data/mctsbot/Agt 2 (DemoBotAlwaysCallBot)/arff/PostCheckBet.arff
/data/mctsbot/Agt 2 (DemoBotAlwaysCallBot)/arff/PostFoldCallRaise.arff
/data/mctsbot/Agt 2 (DemoBotAlwaysCallBot)/arff/PreCheckBet.arff
/data/mctsbot/Agt 2 (DemoBotAlwaysCallBot)/arff/PreFoldCallRaise.arff
/data/mctsbot/Agt 2 (DemoBotAlwaysCallBot)/arff/Showdown.arff
/data/mctsbot/Agt 4 (DemoBotSimpleBot)/arff/PostCheckBet.arff
/data/mctsbot/Agt 4 (DemoBotSimpleBot)/arff/PostFoldCallRaise.arff
/data/mctsbot/Agt 4 (DemoBotSimpleBot)/arff/PreCheckBet.arff
/data/mctsbot/Agt 4 (DemoBotSimpleBot)/arff/PreFoldCallRaise.arff
/data/mctsbot/Agt 4 (DemoBotSimpleBot)/arff/Showdown.arff
/src/bots/mctsbot/ai/bots/bot/gametree/action/DoNothingAction.java
/src/bots/mctsbot/ai/bots/bot/gametree/tls/Sampler.java
/src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/OpponentTree.java

/src/bots/mctsbot/ai/bots/bot/gametree/tls/strategies/selection/SamplingSelector.java
Modified:
/src/bots/mctsbot/ai/bots/bot/gametree/tls/SimulatedGame.java
/src/bots/mctsbot/ai/bots/bot/gametree/tls/TLSBot.java
/src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/DecisionTree.java
/src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/RootTree.java
/src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/TLSTree.java
/src/bots/mctsbot/ai/bots/bot/gametree/tls/nodes/AbstractTLSNode.java
/src/bots/mctsbot/ai/bots/bot/gametree/tls/nodes/InnerNode.java
/src/bots/mctsbot/ai/bots/bot/gametree/tls/nodes/LeafNode.java
/src/bots/mctsbot/ai/bots/bot/gametree/tls/tests/Test.java

=======================================
--- /dev/null
+++ /data/110504-0623-history.txt Fri May 13 04:46:54 2011
@@ -0,0 +1,2014 @@
+Full Tilt Poker Game #36878181949688: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:23:25 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 2 (DemoBot/AlwaysCallBot) posts the small blind of $0.01
+Agt 3 (MCTSBot/MCTSBot) posts the big blind of $0.02
+The button is in seat #1
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Js 9d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [As Kd]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [5c 8s]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Ks Tc]
+Agt 4 (DemoBot/SimpleBot) calls $0.02
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.01
+Agt 3 (MCTSBot/MCTSBot) checks
+*** FLOP *** [9c Kh 5s]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.04
+Agt 4 (DemoBot/SimpleBot) raises to $0.08
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.08
+Agt 3 (MCTSBot/MCTSBot) raises to $0.14
+Agt 4 (DemoBot/SimpleBot) calls $0.06
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.06
+*** TURN *** [9c Kh 5s] [Ts]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $1.73
+Agt 4 (DemoBot/SimpleBot) raises to $1.84
+Agt 2 (DemoBot/AlwaysCallBot) calls $1.84
+Agt 3 (MCTSBot/MCTSBot) calls $0.11
+Agt 4 (DemoBot/SimpleBot) shows [Ks Tc]
+Agt 2 (DemoBot/AlwaysCallBot) shows [As Kd]
+Agt 3 (MCTSBot/MCTSBot) shows [5c 8s]
+*** RIVER *** [9c Kh 5s Ts] [Jd]
+Agt 4 (DemoBot/SimpleBot) wins the pot ($6.00)
+*** SUMMARY ***
+Seat 4: Agt 4 (DemoBot/SimpleBot) showed [Ks Tc] and won ($6.00)
+
+
+Full Tilt Poker Game #36878181949689: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:27:45 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 3 (MCTSBot/MCTSBot) posts the small blind of $0.01
+Agt 4 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #2
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [4d 6d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [7h 5h]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Qh Th]
+Dealt to Agt 4 (DemoBot/SimpleBot) [6c 7s]
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) checks
+*** FLOP *** [3h 9h Kc]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** TURN *** [3h 9h Kc] [8h]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** RIVER *** [3h 9h Kc 8h] [4h]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 4 (DemoBot/SimpleBot) shows [6c 7s]
+Agt 2 (DemoBot/AlwaysCallBot) shows [7h 5h]
+Agt 2 (DemoBot/AlwaysCallBot) wins the pot ($0.05)
+*** SUMMARY ***
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) showed [7h 5h] and won ($0.05)
+
+
+Full Tilt Poker Game #36878181949690: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:27:46 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 4 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 1 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #3
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Ad 3d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [3h 6d]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [8h Tc]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Qc 6c]
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) checks
+*** FLOP *** [Ah 9h 2c]
+Agt 1 (DemoBot/SimpleBot) bets $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** TURN *** [Ah 9h 2c] [8c]
+Agt 1 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+*** RIVER *** [Ah 9h 2c 8c] [5s]
+Agt 1 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 1 (DemoBot/SimpleBot) shows [Ad 3d]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 1 (DemoBot/SimpleBot) wins the pot ($0.25)
+*** SUMMARY ***
+Seat 1: Agt 1 (DemoBot/SimpleBot) showed [Ad 3d] and won ($0.25)
+
+
+Full Tilt Poker Game #36878181949691: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:27:46 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 1 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 2 (DemoBot/AlwaysCallBot) posts the big blind of $0.02
+The button is in seat #4
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [2h 6c]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [4d Ac]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [6d Jd]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Qc 2c]
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) folds
+Uncalled bet of $0.01 returned to Agt 2 (DemoBot/AlwaysCallBot)
+Agt 2 (DemoBot/AlwaysCallBot) wins the pot ($0.02)
+*** SUMMARY ***
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) collected ($0.02)
+
+
+Full Tilt Poker Game #36878181949692: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:27:47 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 2 (DemoBot/AlwaysCallBot) posts the small blind of $0.01
+Agt 3 (MCTSBot/MCTSBot) posts the big blind of $0.02
+The button is in seat #1
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [5d 2d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [9h 8h]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [4c 8s]
+Dealt to Agt 4 (DemoBot/SimpleBot) [3s 3d]
+Agt 4 (DemoBot/SimpleBot) calls $0.02
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.01
+Agt 3 (MCTSBot/MCTSBot) checks
+*** FLOP *** [5c Js 2s]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) checks
+Agt 4 (DemoBot/SimpleBot) checks
+*** TURN *** [5c Js 2s] [Qd]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.03
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.03
+*** RIVER *** [5c Js 2s Qd] [6d]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) shows [4c 8s]
+Agt 2 (DemoBot/AlwaysCallBot) shows [9h 8h]
+Agt 2 (DemoBot/AlwaysCallBot) wins the pot ($0.16)
+*** SUMMARY ***
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) showed [9h 8h] and won ($0.16)
+
+
+Full Tilt Poker Game #36878181949693: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:27:49 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 3 (MCTSBot/MCTSBot) posts the small blind of $0.01
+Agt 4 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #2
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [9c 6c]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [Kc 7c]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Tc 2c]
+Dealt to Agt 4 (DemoBot/SimpleBot) [6d Qh]
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) checks
+*** FLOP *** [8h 5c 9s]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** TURN *** [8h 5c 9s] [9d]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** RIVER *** [8h 5c 9s 9d] [4s]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 4 (DemoBot/SimpleBot) shows [6d Qh]
+Agt 2 (DemoBot/AlwaysCallBot) shows [Kc 7c]
+Agt 2 (DemoBot/AlwaysCallBot) wins the pot ($0.05)
+*** SUMMARY ***
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) showed [Kc 7c] and won ($0.05)
+
+
+Full Tilt Poker Game #36878181949694: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:27:49 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 4 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 1 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #3
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Js Jc]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [5c Ac]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [5h 5s]
+Dealt to Agt 4 (DemoBot/SimpleBot) [7d Qs]
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) raises to $0.48
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) calls $0.46
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.46
+*** FLOP *** [Tc 3c Ah]
+Agt 1 (DemoBot/SimpleBot) bets $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) raises to $0.07
+Agt 1 (DemoBot/SimpleBot) calls $0.05
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.05
+*** TURN *** [Tc 3c Ah] [Qh]
+Agt 1 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 3 (MCTSBot/MCTSBot) calls $0.04
+*** RIVER *** [Tc 3c Ah Qh] [6c]
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.03
+Agt 1 (DemoBot/SimpleBot) calls $0.03
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.03
+Agt 3 (MCTSBot/MCTSBot) shows [5h 5s]
+Agt 1 (DemoBot/SimpleBot) shows [Js Jc]
+Agt 2 (DemoBot/AlwaysCallBot) shows [5c Ac]
+Agt 2 (DemoBot/AlwaysCallBot) wins the pot ($1.87)
+*** SUMMARY ***
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) showed [5c Ac] and won ($1.87)
+
+
+Full Tilt Poker Game #36878181949695: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:27:51 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 1 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 2 (DemoBot/AlwaysCallBot) posts the big blind of $0.02
+The button is in seat #4
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [7h 6d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [5s Qs]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Qd 4h]
+Dealt to Agt 4 (DemoBot/SimpleBot) [3s 9h]
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) folds
+Uncalled bet of $0.01 returned to Agt 2 (DemoBot/AlwaysCallBot)
+Agt 2 (DemoBot/AlwaysCallBot) wins the pot ($0.02)
+*** SUMMARY ***
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) collected ($0.02)
+
+
+Full Tilt Poker Game #36878181949696: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:27:52 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 2 (DemoBot/AlwaysCallBot) posts the small blind of $0.01
+Agt 3 (MCTSBot/MCTSBot) posts the big blind of $0.02
+The button is in seat #1
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Jc 4s]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [Jd 7s]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [9s Th]
+Dealt to Agt 4 (DemoBot/SimpleBot) [3s 4h]
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.01
+Agt 3 (MCTSBot/MCTSBot) raises to $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** FLOP *** [2s Qs Td]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.21
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.21
+*** TURN *** [2s Qs Td] [6c]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.19
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.19
+*** RIVER *** [2s Qs Td 6c] [4d]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.08
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.08
+Agt 3 (MCTSBot/MCTSBot) shows [9s Th]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 3 (MCTSBot/MCTSBot) wins the pot ($1.04)
+*** SUMMARY ***
+Seat 3: Agt 3 (MCTSBot/MCTSBot) showed [9s Th] and won ($1.04)
+
+
+Full Tilt Poker Game #36878181949697: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:27:54 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 3 (MCTSBot/MCTSBot) posts the small blind of $0.01
+Agt 4 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #2
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [3s 5d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [5c Ts]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Js 9c]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Jc Td]
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) raises to $0.16
+Agt 4 (DemoBot/SimpleBot) calls $0.14
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.14
+*** FLOP *** [Qh As 2s]
+Agt 3 (MCTSBot/MCTSBot) bets $0.11
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.11
+*** TURN *** [Qh As 2s] [Ad]
+Agt 3 (MCTSBot/MCTSBot) bets $0.16
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.16
+*** RIVER *** [Qh As 2s Ad] [Kd]
+Agt 3 (MCTSBot/MCTSBot) bets $0.23
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.23
+Agt 3 (MCTSBot/MCTSBot) shows [Js 9c]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 3 (MCTSBot/MCTSBot) wins the pot ($1.48)
+*** SUMMARY ***
+Seat 3: Agt 3 (MCTSBot/MCTSBot) showed [Js 9c] and won ($1.48)
+
+
+Full Tilt Poker Game #36878181949698: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:22 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 4 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 1 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #3
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Ks Kc]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [3h As]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [8h 6h]
+Dealt to Agt 4 (DemoBot/SimpleBot) [3s Tc]
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) raises to $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** FLOP *** [Kh Ts 5h]
+Agt 1 (DemoBot/SimpleBot) bets $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** TURN *** [Kh Ts 5h] [Qc]
+Agt 1 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+*** RIVER *** [Kh Ts 5h Qc] [Ad]
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 1 (DemoBot/SimpleBot) shows [Ks Kc]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 1 (DemoBot/SimpleBot) wins the pot ($0.21)
+*** SUMMARY ***
+Seat 1: Agt 1 (DemoBot/SimpleBot) showed [Ks Kc] and won ($0.21)
+
+
+Full Tilt Poker Game #36878181949699: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:23 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 1 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 2 (DemoBot/AlwaysCallBot) posts the big blind of $0.02
+The button is in seat #4
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Qs 5d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [Js Kd]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [5s 6s]
+Dealt to Agt 4 (DemoBot/SimpleBot) [As Tc]
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) calls $0.02
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** FLOP *** [9c Qc Kh]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 4 (DemoBot/SimpleBot) bets $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** TURN *** [9c Qc Kh] [7c]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 4 (DemoBot/SimpleBot) checks
+*** RIVER *** [9c Qc Kh 7c] [8h]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) shows [Js Kd]
+Agt 4 (DemoBot/SimpleBot) mucks
+Agt 2 (DemoBot/AlwaysCallBot) wins the pot ($0.09)
+*** SUMMARY ***
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) showed [Js Kd] and won ($0.09)
+
+
+Full Tilt Poker Game #36878181949700: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:23 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 2 (DemoBot/AlwaysCallBot) posts the small blind of $0.01
+Agt 3 (MCTSBot/MCTSBot) posts the big blind of $0.02
+The button is in seat #1
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [2h 7c]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [4s Jd]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Td 8d]
+Dealt to Agt 4 (DemoBot/SimpleBot) [4h 8s]
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.01
+Agt 3 (MCTSBot/MCTSBot) checks
+*** FLOP *** [9d 8c Ts]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.14
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.14
+*** TURN *** [9d 8c Ts] [6h]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+*** RIVER *** [9d 8c Ts 6h] [Kc]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.03
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.03
+Agt 3 (MCTSBot/MCTSBot) shows [Td 8d]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 3 (MCTSBot/MCTSBot) wins the pot ($0.46)
+*** SUMMARY ***
+Seat 3: Agt 3 (MCTSBot/MCTSBot) showed [Td 8d] and won ($0.46)
+
+
+Full Tilt Poker Game #36878181949701: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:25 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 3 (MCTSBot/MCTSBot) posts the small blind of $0.01
+Agt 4 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #2
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [3d 2d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [5d Qd]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [3s 7d]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Qs 2s]
+Agt 1 (DemoBot/SimpleBot) calls $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) checks
+*** FLOP *** [8s 9c Ts]
+Agt 4 (DemoBot/SimpleBot) bets $0.02
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** TURN *** [8s 9c Ts] [Ac]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** RIVER *** [8s 9c Ts Ac] [4s]
+Agt 4 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 4 (DemoBot/SimpleBot) shows [Qs 2s]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 4 (DemoBot/SimpleBot) wins the pot ($0.19)
+*** SUMMARY ***
+Seat 4: Agt 4 (DemoBot/SimpleBot) showed [Qs 2s] and won ($0.19)
+
+
+Full Tilt Poker Game #36878181949702: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:26 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 4 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 1 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #3
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Ah 6d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [Ac Td]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [8h 2c]
+Dealt to Agt 4 (DemoBot/SimpleBot) [5d 9s]
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) checks
+*** FLOP *** [2s 9h 6h]
+Agt 1 (DemoBot/SimpleBot) bets $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** TURN *** [2s 9h 6h] [5s]
+Agt 1 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+*** RIVER *** [2s 9h 6h 5s] [4c]
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 1 (DemoBot/SimpleBot) shows [Ah 6d]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 1 (DemoBot/SimpleBot) wins the pot ($0.17)
+*** SUMMARY ***
+Seat 1: Agt 1 (DemoBot/SimpleBot) showed [Ah 6d] and won ($0.17)
+
+
+Full Tilt Poker Game #36878181949703: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:26 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 1 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 2 (DemoBot/AlwaysCallBot) posts the big blind of $0.02
+The button is in seat #4
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Kh Jc]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [Qc 3d]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Qs 4d]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Ts 3c]
+Agt 3 (MCTSBot/MCTSBot) raises to $0.33
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) calls $0.32
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.31
+*** FLOP *** [6h 4h 3s]
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.09
+Agt 1 (DemoBot/SimpleBot) calls $0.09
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.09
+*** TURN *** [6h 4h 3s] [Th]
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.09
+Agt 1 (DemoBot/SimpleBot) calls $0.09
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.09
+*** RIVER *** [6h 4h 3s Th] [6c]
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.32
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.32
+Agt 3 (MCTSBot/MCTSBot) shows [Qs 4d]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 3 (MCTSBot/MCTSBot) wins the pot ($2.17)
+*** SUMMARY ***
+Seat 3: Agt 3 (MCTSBot/MCTSBot) showed [Qs 4d] and won ($2.17)
+
+
+Full Tilt Poker Game #36878181949704: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:28 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 2 (DemoBot/AlwaysCallBot) posts the small blind of $0.01
+Agt 3 (MCTSBot/MCTSBot) posts the big blind of $0.02
+The button is in seat #1
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [3c 3h]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [9d 6c]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [8d Jd]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Ad Ac]
+Agt 4 (DemoBot/SimpleBot) raises to $0.04
+Agt 1 (DemoBot/SimpleBot) calls $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.03
+Agt 3 (MCTSBot/MCTSBot) folds
+*** FLOP *** [Ah As Th]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 4 (DemoBot/SimpleBot) bets $0.02
+Agt 1 (DemoBot/SimpleBot) raises to $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 4 (DemoBot/SimpleBot) raises to $0.06
+Agt 1 (DemoBot/SimpleBot) calls $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** TURN *** [Ah As Th] [9h]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 4 (DemoBot/SimpleBot) bets $0.04
+Agt 1 (DemoBot/SimpleBot) calls $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+*** RIVER *** [Ah As Th 9h] [7c]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 4 (DemoBot/SimpleBot) bets $0.04
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 4 (DemoBot/SimpleBot) shows [Ad Ac]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 4 (DemoBot/SimpleBot) wins the pot ($0.52)
+*** SUMMARY ***
+Seat 4: Agt 4 (DemoBot/SimpleBot) showed [Ad Ac] and won ($0.52)
+
+
+Full Tilt Poker Game #36878181949705: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:29 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 3 (MCTSBot/MCTSBot) posts the small blind of $0.01
+Agt 4 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #2
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [4h 2s]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [4d Qh]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [3h 2c]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Ah 5s]
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) checks
+*** FLOP *** [Tc Jd 3s]
+Agt 4 (DemoBot/SimpleBot) bets $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** TURN *** [Tc Jd 3s] [7d]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** RIVER *** [Tc Jd 3s 7d] [8c]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 4 (DemoBot/SimpleBot) shows [Ah 5s]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 4 (DemoBot/SimpleBot) wins the pot ($0.09)
+*** SUMMARY ***
+Seat 4: Agt 4 (DemoBot/SimpleBot) showed [Ah 5s] and won ($0.09)
+
+
+Full Tilt Poker Game #36878181949706: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:30 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 4 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 1 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #3
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [9c Tc]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [Th 2s]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [5d 6s]
+Dealt to Agt 4 (DemoBot/SimpleBot) [As Td]
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) calls $0.01
+Agt 1 (DemoBot/SimpleBot) checks
+*** FLOP *** [3d Kd Ts]
+Agt 4 (DemoBot/SimpleBot) bets $0.02
+Agt 1 (DemoBot/SimpleBot) calls $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** TURN *** [3d Kd Ts] [9h]
+Agt 4 (DemoBot/SimpleBot) bets $0.04
+Agt 1 (DemoBot/SimpleBot) raises to $0.08
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.08
+Agt 4 (DemoBot/SimpleBot) calls $0.04
+*** RIVER *** [3d Kd Ts 9h] [Js]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 1 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 4 (DemoBot/SimpleBot) raises to $0.08
+Agt 1 (DemoBot/SimpleBot) calls $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 4 (DemoBot/SimpleBot) shows [As Td]
+Agt 1 (DemoBot/SimpleBot) shows [9c Tc]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 1 (DemoBot/SimpleBot) wins the pot ($0.60)
+*** SUMMARY ***
+Seat 1: Agt 1 (DemoBot/SimpleBot) showed [9c Tc] and won ($0.60)
+
+
+Full Tilt Poker Game #36878181949707: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:30 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 1 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 2 (DemoBot/AlwaysCallBot) posts the big blind of $0.02
+The button is in seat #4
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [6d Td]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [7s Js]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [8h 7h]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Qc 8c]
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) folds
+Uncalled bet of $0.01 returned to Agt 2 (DemoBot/AlwaysCallBot)
+Agt 2 (DemoBot/AlwaysCallBot) wins the pot ($0.02)
+*** SUMMARY ***
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) collected ($0.02)
+
+
+Full Tilt Poker Game #36878181949708: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:31 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 2 (DemoBot/AlwaysCallBot) posts the small blind of $0.01
+Agt 3 (MCTSBot/MCTSBot) posts the big blind of $0.02
+The button is in seat #1
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Ad 5d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [Ah 9c]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [4h 5c]
+Dealt to Agt 4 (DemoBot/SimpleBot) [2c 7c]
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) calls $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.01
+Agt 3 (MCTSBot/MCTSBot) checks
+*** FLOP *** [9d Jd 3d]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) checks
+Agt 1 (DemoBot/SimpleBot) bets $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+*** TURN *** [9d Jd 3d] [8d]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 1 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+*** RIVER *** [9d Jd 3d 8d] [2h]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 1 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 1 (DemoBot/SimpleBot) shows [Ad 5d]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 1 (DemoBot/SimpleBot) wins the pot ($0.26)
+*** SUMMARY ***
+Seat 1: Agt 1 (DemoBot/SimpleBot) showed [Ad 5d] and won ($0.26)
+
+
+Full Tilt Poker Game #36878181949709: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:32 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 3 (MCTSBot/MCTSBot) posts the small blind of $0.01
+Agt 4 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #2
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Kc Qd]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [6h Jd]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [5s Ts]
+Dealt to Agt 4 (DemoBot/SimpleBot) [4d 5d]
+Agt 1 (DemoBot/SimpleBot) calls $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) checks
+*** FLOP *** [9s 2c 8h]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** TURN *** [9s 2c 8h] [7h]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** RIVER *** [9s 2c 8h 7h] [8c]
+Agt 4 (DemoBot/SimpleBot) checks
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 4 (DemoBot/SimpleBot) shows [4d 5d]
+Agt 1 (DemoBot/SimpleBot) shows [Kc Qd]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 1 (DemoBot/SimpleBot) wins the pot ($0.07)
+*** SUMMARY ***
+Seat 1: Agt 1 (DemoBot/SimpleBot) showed [Kc Qd] and won ($0.07)
+
+
+Full Tilt Poker Game #36878181949710: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:33 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 4 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 1 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #3
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [8s Ac]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [Js 4s]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Qd 2s]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Th 6h]
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) checks
+*** FLOP *** [9d 8c As]
+Agt 1 (DemoBot/SimpleBot) bets $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** TURN *** [9d 8c As] [8h]
+Agt 1 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+*** RIVER *** [9d 8c As 8h] [2c]
+Agt 1 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 1 (DemoBot/SimpleBot) shows [8s Ac]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 1 (DemoBot/SimpleBot) wins the pot ($0.25)
+*** SUMMARY ***
+Seat 1: Agt 1 (DemoBot/SimpleBot) showed [8s Ac] and won ($0.25)
+
+
+Full Tilt Poker Game #36878181949711: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:33 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 1 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 2 (DemoBot/AlwaysCallBot) posts the big blind of $0.02
+The button is in seat #4
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [Kc 5s]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [Ks 5d]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Ts Jh]
+Dealt to Agt 4 (DemoBot/SimpleBot) [2c 4d]
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) folds
+Uncalled bet of $0.01 returned to Agt 2 (DemoBot/AlwaysCallBot)
+Agt 2 (DemoBot/AlwaysCallBot) wins the pot ($0.02)
+*** SUMMARY ***
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) collected ($0.02)
+
+
+Full Tilt Poker Game #36878181949712: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:34 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 2 (DemoBot/AlwaysCallBot) posts the small blind of $0.01
+Agt 3 (MCTSBot/MCTSBot) posts the big blind of $0.02
+The button is in seat #1
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [4c 6c]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [7h Jh]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [7s Ks]
+Dealt to Agt 4 (DemoBot/SimpleBot) [3h Kc]
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.01
+Agt 3 (MCTSBot/MCTSBot) raises to $0.14
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.12
+*** FLOP *** [4h 8c 2d]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.06
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.06
+*** TURN *** [4h 8c 2d] [9h]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.05
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.05
+*** RIVER *** [4h 8c 2d 9h] [8s]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 3 (MCTSBot/MCTSBot) shows [7s Ks]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 3 (MCTSBot/MCTSBot) wins the pot ($0.58)
+*** SUMMARY ***
+Seat 3: Agt 3 (MCTSBot/MCTSBot) showed [7s Ks] and won ($0.58)
+
+
+Full Tilt Poker Game #36878181949713: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:36 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 3 (MCTSBot/MCTSBot) posts the small blind of $0.01
+Agt 4 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #2
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [8d 6s]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [8c 2s]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [3c 9c]
+Dealt to Agt 4 (DemoBot/SimpleBot) [Kd Ah]
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) checks
+*** FLOP *** [8h As 5c]
+Agt 4 (DemoBot/SimpleBot) bets $0.02
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+*** TURN *** [8h As 5c] [Ac]
+Agt 4 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+*** RIVER *** [8h As 5c Ac] [3d]
+Agt 4 (DemoBot/SimpleBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+Agt 4 (DemoBot/SimpleBot) shows [Kd Ah]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 4 (DemoBot/SimpleBot) wins the pot ($0.25)
+*** SUMMARY ***
+Seat 4: Agt 4 (DemoBot/SimpleBot) showed [Kd Ah] and won ($0.25)
+
+
+Full Tilt Poker Game #36878181949714: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:36 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 4 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 1 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #3
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [3d 5d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [3h 2d]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Ks 2c]
+Dealt to Agt 4 (DemoBot/SimpleBot) [5s 8h]
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.02
+Agt 3 (MCTSBot/MCTSBot) folds
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) checks
+*** FLOP *** [7s Kh 6h]
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** TURN *** [7s Kh 6h] [2s]
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+*** RIVER *** [7s Kh 6h 2s] [8c]
+Agt 1 (DemoBot/SimpleBot) checks
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 1 (DemoBot/SimpleBot) shows [3d 5d]
+Agt 2 (DemoBot/AlwaysCallBot) shows [3h 2d]
+Agt 2 (DemoBot/AlwaysCallBot) wins the pot ($0.05)
+*** SUMMARY ***
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) showed [3h 2d] and won ($0.05)
+
+
+Full Tilt Poker Game #36878181949715: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:37 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 1 (DemoBot/SimpleBot) posts the small blind of $0.01
+Agt 2 (DemoBot/AlwaysCallBot) posts the big blind of $0.02
+The button is in seat #4
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [7d 9d]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [Ah Tc]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Kd Qs]
+Dealt to Agt 4 (DemoBot/SimpleBot) [7s Ks]
+Agt 3 (MCTSBot/MCTSBot) raises to $0.67
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.65
+*** FLOP *** [4s Kc 8c]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.26
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.26
+*** TURN *** [4s Kc 8c] [3h]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $1.07
+Agt 2 (DemoBot/AlwaysCallBot) calls $1.07
+Agt 3 (MCTSBot/MCTSBot) shows [Kd Qs]
+Agt 2 (DemoBot/AlwaysCallBot) shows [Ah Tc]
+*** RIVER *** [4s Kc 8c 3h] [Js]
+Agt 3 (MCTSBot/MCTSBot) wins the pot ($4.01)
+*** SUMMARY ***
+Seat 3: Agt 3 (MCTSBot/MCTSBot) showed [Kd Qs] and won ($4.01)
+
+
+Full Tilt Poker Game #36878181949716: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:38 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 2 (DemoBot/AlwaysCallBot) posts the small blind of $0.01
+Agt 3 (MCTSBot/MCTSBot) posts the big blind of $0.02
+The button is in seat #1
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [8s Tc]
+Dealt to Agt 2 (DemoBot/AlwaysCallBot) [4c Ac]
+Dealt to Agt 3 (MCTSBot/MCTSBot) [Qh 5c]
+Dealt to Agt 4 (DemoBot/SimpleBot) [6d Kh]
+Agt 4 (DemoBot/SimpleBot) folds
+Agt 1 (DemoBot/SimpleBot) folds
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.01
+Agt 3 (MCTSBot/MCTSBot) raises to $0.10
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.08
+*** FLOP *** [3s Js Td]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.44
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.44
+*** TURN *** [3s Js Td] [5s]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.04
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.04
+*** RIVER *** [3s Js Td 5s] [9s]
+Agt 2 (DemoBot/AlwaysCallBot) checks
+Agt 3 (MCTSBot/MCTSBot) bets $0.03
+Agt 2 (DemoBot/AlwaysCallBot) calls $0.03
+Agt 3 (MCTSBot/MCTSBot) shows [Qh 5c]
+Agt 2 (DemoBot/AlwaysCallBot) mucks
+Agt 3 (MCTSBot/MCTSBot) wins the pot ($1.22)
+*** SUMMARY ***
+Seat 3: Agt 3 (MCTSBot/MCTSBot) showed [Qh 5c] and won ($1.22)
+
+
+Full Tilt Poker Game #36878181949717: Table OpenTestBed - $0.01/$0.02 -
Limit Hold'em - 06:28:40 CEST - 2011/05/04
+Seat 1: Agt 1 (DemoBot/SimpleBot) ($2.00)
+Seat 2: Agt 2 (DemoBot/AlwaysCallBot) ($2.00)
+Seat 3: Agt 3 (MCTSBot/MCTSBot) ($2.00)
+Seat 4: Agt 4 (DemoBot/SimpleBot) ($2.00)
+Agt 3 (MCTSBot/MCTSBot) posts the small blind of $0.01
+Agt 4 (DemoBot/SimpleBot) posts the big blind of $0.02
+The button is in seat #2
+*** HOLE CARDS ***
+Dealt to Agt 1 (DemoBot/SimpleBot) [6d 9h]
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 1 (DemoBotSimpleBot)/arff/PostCheckBet.arff Fri May
13 04:46:54 2011
@@ -0,0 +1,38 @@
+@relation PostCheckBet
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute round {flop,turn,river}
+@attribute gameCount numeric
+@attribute somebodyActedThisRound {false,true}
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute betFrequency numeric
+@attribute betFrequencyRound numeric
+@attribute nbAllPlayerRaises numeric
+@attribute nbPlayerRaises numeric
+@attribute gameRaisePercentage numeric
+@attribute gameRaiseAmount numeric
+@attribute gameRaiseAmountRatio numeric
+@attribute lastActionWasRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute betProb numeric
+@attribute action {check,bet}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 1 (DemoBotSimpleBot)/arff/PostFoldCallRaise.arff Fri
May 13 04:46:54 2011
@@ -0,0 +1,48 @@
+@relation PostFoldCallRaise
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute round {flop,turn,river}
+@attribute gameCount numeric
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute deficit numeric
+@attribute potOdds numeric
+@attribute maxbet numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute foldFrequency numeric
+@attribute callFrequency numeric
+@attribute raiseFrequency numeric
+@attribute foldFrequencyRound numeric
+@attribute callFrequencyRound numeric
+@attribute raiseFrequencyRound numeric
+@attribute isComitted {false,true}
+@attribute nbAllPlayerRaises numeric
+@attribute nbPlayerRaises numeric
+@attribute nbPlayerRoundRaises numeric
+@attribute gameRaisePercentage numeric
+@attribute gameRaiseAmount numeric
+@attribute gameRaiseAmountRatio numeric
+@attribute lastActionWasRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute foldProb numeric
+@attribute callProb numeric
+@attribute raiseProb numeric
+@attribute action {fold,call,raise}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 1 (DemoBotSimpleBot)/arff/PreCheckBet.arff Fri May 13
04:46:54 2011
@@ -0,0 +1,30 @@
+@relation PreCheckBet
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute gameCount numeric
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute betFrequency numeric
+@attribute betFrequencyRound numeric
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute betProb numeric
+@attribute action {check,bet}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 1 (DemoBotSimpleBot)/arff/PreFoldCallRaise.arff Fri
May 13 04:46:54 2011
@@ -0,0 +1,48 @@
+@relation PreFoldCallRaise
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute gameCount numeric
+@attribute somebodyActedThisRound {false,true}
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute deficit numeric
+@attribute potOdds numeric
+@attribute maxbet numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute foldFrequency numeric
+@attribute callFrequency numeric
+@attribute raiseFrequency numeric
+@attribute foldFrequencyRound numeric
+@attribute callFrequencyRound numeric
+@attribute raiseFrequencyRound numeric
+@attribute isComitted {false,true}
+@attribute nbAllPlayerRaises numeric
+@attribute nbPlayerRaises numeric
+@attribute gameRaisePercentage numeric
+@attribute gameRaiseAmount numeric
+@attribute gameRaiseAmountRatio numeric
+@attribute lastActionWasRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute foldProb numeric
+@attribute callProb numeric
+@attribute raiseProb numeric
+@attribute action {fold,call,raise}
+
+@data
+0.333333,1,2,1,true,1,2.5,100,0,0.285714,0,4,4,1,0.71,0.16,0.16,0.71,0.14,0.15,false,0,0,0,0,0,false,0.24,0.128,2.4,0.24,0.182322,0.57,0.306667,0.128,2.266667,0.226667,0.121548,0.57,1,0,0,fold
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 1 (DemoBotSimpleBot)/arff/Showdown.arff Fri May 13
04:46:54 2011
@@ -0,0 +1,86 @@
+@relation Showdown
+
+@attribute gameCount numeric
+@attribute potSize numeric
+@attribute logPotSize numeric
+@attribute stackSize numeric
+@attribute log1pStackSize numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute betFrequency numeric
+@attribute foldFrequency numeric
+@attribute callFrequency numeric
+@attribute raiseFrequency numeric
+@attribute nbAllPlayerBetRaise numeric
+@attribute nbPlayerBetRaise numeric
+@attribute nbPlayerPreFlopBetRaise numeric
+@attribute nbPlayerPostFlopBetRaise numeric
+@attribute nbPlayerFlopBetRaise numeric
+@attribute nbPlayerTurnBetRaise numeric
+@attribute nbPlayerRiverBetRaise numeric
+@attribute allPlayerBetRaiseAmount numeric
+@attribute playerBetRaiseAmount numeric
+@attribute playerPreFlopBetRaiseAmount numeric
+@attribute playerPostFlopBetRaiseAmount numeric
+@attribute playerFlopBetRaiseAmount numeric
+@attribute playerTurnBetRaiseAmount numeric
+@attribute playerRiverBetRaiseAmount numeric
+@attribute allPlayerBetsAmount numeric
+@attribute playerBetsAmount numeric
+@attribute playerPreFlopBetsAmount numeric
+@attribute playerPostFlopBetsAmount numeric
+@attribute playerFlopBetsAmount numeric
+@attribute playerTuretsAmount numeric
+@attribute playerRiverBetsAmount numeric
+@attribute allPlayerRaisesAmount numeric
+@attribute playerRaisesAmount numeric
+@attribute playerPreFlopRaisesAmount numeric
+@attribute playerPostFlopRaisesAmount numeric
+@attribute playerFlopRaisesAmount numeric
+@attribute playerTurnRaisesAmount numeric
+@attribute playerRiverRaisesAmount numeric
+@attribute relNbPlayerBetRaise numeric
+@attribute relNbPlayerPreFlopBetRaise numeric
+@attribute relNbPlayerPostFlopBetRaise numeric
+@attribute relNbPlayerFlopBetRaise numeric
+@attribute relNbPlayerTurnBetRaise numeric
+@attribute relNbPlayerRiverBetRaise numeric
+@attribute relPlayerBetRaiseAmount numeric
+@attribute relPlayerPreFlopBetRaiseAmount numeric
+@attribute relPlayerPostFlopBetRaiseAmount numeric
+@attribute relPlayerFlopBetRaiseAmount numeric
+@attribute relPlayerTurnBetRaiseAmount numeric
+@attribute relPlayerRiverBetRaiseAmount numeric
+@attribute nbPlayerPreFlopBetRaiseTable numeric
+@attribute nbPlayerPostFlopBetRaiseTable numeric
+@attribute nbPlayerFlopBetRaiseTable numeric
+@attribute nbPlayerTurnBetRaiseTable numeric
+@attribute nbPlayerRiverBetRaiseTable numeric
+@attribute playerPreFlopBetRaiseAmountTable numeric
+@attribute playerPostFlopBetRaiseAmountTable numeric
+@attribute playerFlopBetRaiseAmountTable numeric
+@attribute playerTurnBetRaiseAmountTable numeric
+@attribute playerRiverBetRaiseAmountTable numeric
+@attribute lastActionWasBetRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute logAFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute part0Prob numeric
+@attribute part1Prob numeric
+@attribute part2Prob numeric
+@attribute part3Prob numeric
+@attribute part4Prob numeric
+@attribute part5Prob numeric
+@attribute avgPartition {0,1,2,3,4,5}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 2 (DemoBotAlwaysCallBot)/arff/PostCheckBet.arff Fri
May 13 04:46:54 2011
@@ -0,0 +1,38 @@
+@relation PostCheckBet
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute round {flop,turn,river}
+@attribute gameCount numeric
+@attribute somebodyActedThisRound {false,true}
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute betFrequency numeric
+@attribute betFrequencyRound numeric
+@attribute nbAllPlayerRaises numeric
+@attribute nbPlayerRaises numeric
+@attribute gameRaisePercentage numeric
+@attribute gameRaiseAmount numeric
+@attribute gameRaiseAmountRatio numeric
+@attribute lastActionWasRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute betProb numeric
+@attribute action {check,bet}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 2 (DemoBotAlwaysCallBot)/arff/PostFoldCallRaise.arff
Fri May 13 04:46:54 2011
@@ -0,0 +1,48 @@
+@relation PostFoldCallRaise
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute round {flop,turn,river}
+@attribute gameCount numeric
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute deficit numeric
+@attribute potOdds numeric
+@attribute maxbet numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute foldFrequency numeric
+@attribute callFrequency numeric
+@attribute raiseFrequency numeric
+@attribute foldFrequencyRound numeric
+@attribute callFrequencyRound numeric
+@attribute raiseFrequencyRound numeric
+@attribute isComitted {false,true}
+@attribute nbAllPlayerRaises numeric
+@attribute nbPlayerRaises numeric
+@attribute nbPlayerRoundRaises numeric
+@attribute gameRaisePercentage numeric
+@attribute gameRaiseAmount numeric
+@attribute gameRaiseAmountRatio numeric
+@attribute lastActionWasRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute foldProb numeric
+@attribute callProb numeric
+@attribute raiseProb numeric
+@attribute action {fold,call,raise}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 2 (DemoBotAlwaysCallBot)/arff/PreCheckBet.arff Fri
May 13 04:46:54 2011
@@ -0,0 +1,30 @@
+@relation PreCheckBet
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute gameCount numeric
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute betFrequency numeric
+@attribute betFrequencyRound numeric
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute betProb numeric
+@attribute action {check,bet}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 2 (DemoBotAlwaysCallBot)/arff/PreFoldCallRaise.arff
Fri May 13 04:46:54 2011
@@ -0,0 +1,48 @@
+@relation PreFoldCallRaise
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute gameCount numeric
+@attribute somebodyActedThisRound {false,true}
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute deficit numeric
+@attribute potOdds numeric
+@attribute maxbet numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute foldFrequency numeric
+@attribute callFrequency numeric
+@attribute raiseFrequency numeric
+@attribute foldFrequencyRound numeric
+@attribute callFrequencyRound numeric
+@attribute raiseFrequencyRound numeric
+@attribute isComitted {false,true}
+@attribute nbAllPlayerRaises numeric
+@attribute nbPlayerRaises numeric
+@attribute gameRaisePercentage numeric
+@attribute gameRaiseAmount numeric
+@attribute gameRaiseAmountRatio numeric
+@attribute lastActionWasRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute foldProb numeric
+@attribute callProb numeric
+@attribute raiseProb numeric
+@attribute action {fold,call,raise}
+
+@data
+0.5,1,1,1,true,2,2.5,99.5,-0.693147,0.166667,0,4,3,0.75,0.71,0.16,0.16,0.71,0.14,0.15,true,0,0,0,0,0,false,0.24,0.128,2.4,0.24,0.182322,0.57,0.34,0.128,2.2,0.22,0.091161,0.57,0,1,0,call
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 2 (DemoBotAlwaysCallBot)/arff/Showdown.arff Fri May
13 04:46:54 2011
@@ -0,0 +1,86 @@
+@relation Showdown
+
+@attribute gameCount numeric
+@attribute potSize numeric
+@attribute logPotSize numeric
+@attribute stackSize numeric
+@attribute log1pStackSize numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute betFrequency numeric
+@attribute foldFrequency numeric
+@attribute callFrequency numeric
+@attribute raiseFrequency numeric
+@attribute nbAllPlayerBetRaise numeric
+@attribute nbPlayerBetRaise numeric
+@attribute nbPlayerPreFlopBetRaise numeric
+@attribute nbPlayerPostFlopBetRaise numeric
+@attribute nbPlayerFlopBetRaise numeric
+@attribute nbPlayerTurnBetRaise numeric
+@attribute nbPlayerRiverBetRaise numeric
+@attribute allPlayerBetRaiseAmount numeric
+@attribute playerBetRaiseAmount numeric
+@attribute playerPreFlopBetRaiseAmount numeric
+@attribute playerPostFlopBetRaiseAmount numeric
+@attribute playerFlopBetRaiseAmount numeric
+@attribute playerTurnBetRaiseAmount numeric
+@attribute playerRiverBetRaiseAmount numeric
+@attribute allPlayerBetsAmount numeric
+@attribute playerBetsAmount numeric
+@attribute playerPreFlopBetsAmount numeric
+@attribute playerPostFlopBetsAmount numeric
+@attribute playerFlopBetsAmount numeric
+@attribute playerTuretsAmount numeric
+@attribute playerRiverBetsAmount numeric
+@attribute allPlayerRaisesAmount numeric
+@attribute playerRaisesAmount numeric
+@attribute playerPreFlopRaisesAmount numeric
+@attribute playerPostFlopRaisesAmount numeric
+@attribute playerFlopRaisesAmount numeric
+@attribute playerTurnRaisesAmount numeric
+@attribute playerRiverRaisesAmount numeric
+@attribute relNbPlayerBetRaise numeric
+@attribute relNbPlayerPreFlopBetRaise numeric
+@attribute relNbPlayerPostFlopBetRaise numeric
+@attribute relNbPlayerFlopBetRaise numeric
+@attribute relNbPlayerTurnBetRaise numeric
+@attribute relNbPlayerRiverBetRaise numeric
+@attribute relPlayerBetRaiseAmount numeric
+@attribute relPlayerPreFlopBetRaiseAmount numeric
+@attribute relPlayerPostFlopBetRaiseAmount numeric
+@attribute relPlayerFlopBetRaiseAmount numeric
+@attribute relPlayerTurnBetRaiseAmount numeric
+@attribute relPlayerRiverBetRaiseAmount numeric
+@attribute nbPlayerPreFlopBetRaiseTable numeric
+@attribute nbPlayerPostFlopBetRaiseTable numeric
+@attribute nbPlayerFlopBetRaiseTable numeric
+@attribute nbPlayerTurnBetRaiseTable numeric
+@attribute nbPlayerRiverBetRaiseTable numeric
+@attribute playerPreFlopBetRaiseAmountTable numeric
+@attribute playerPostFlopBetRaiseAmountTable numeric
+@attribute playerFlopBetRaiseAmountTable numeric
+@attribute playerTurnBetRaiseAmountTable numeric
+@attribute playerRiverBetRaiseAmountTable numeric
+@attribute lastActionWasBetRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute logAFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute part0Prob numeric
+@attribute part1Prob numeric
+@attribute part2Prob numeric
+@attribute part3Prob numeric
+@attribute part4Prob numeric
+@attribute part5Prob numeric
+@attribute avgPartition {0,1,2,3,4,5}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 4 (DemoBotSimpleBot)/arff/PostCheckBet.arff Fri May
13 04:46:54 2011
@@ -0,0 +1,38 @@
+@relation PostCheckBet
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute round {flop,turn,river}
+@attribute gameCount numeric
+@attribute somebodyActedThisRound {false,true}
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute betFrequency numeric
+@attribute betFrequencyRound numeric
+@attribute nbAllPlayerRaises numeric
+@attribute nbPlayerRaises numeric
+@attribute gameRaisePercentage numeric
+@attribute gameRaiseAmount numeric
+@attribute gameRaiseAmountRatio numeric
+@attribute lastActionWasRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute betProb numeric
+@attribute action {check,bet}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 4 (DemoBotSimpleBot)/arff/PostFoldCallRaise.arff Fri
May 13 04:46:54 2011
@@ -0,0 +1,48 @@
+@relation PostFoldCallRaise
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute round {flop,turn,river}
+@attribute gameCount numeric
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute deficit numeric
+@attribute potOdds numeric
+@attribute maxbet numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute foldFrequency numeric
+@attribute callFrequency numeric
+@attribute raiseFrequency numeric
+@attribute foldFrequencyRound numeric
+@attribute callFrequencyRound numeric
+@attribute raiseFrequencyRound numeric
+@attribute isComitted {false,true}
+@attribute nbAllPlayerRaises numeric
+@attribute nbPlayerRaises numeric
+@attribute nbPlayerRoundRaises numeric
+@attribute gameRaisePercentage numeric
+@attribute gameRaiseAmount numeric
+@attribute gameRaiseAmountRatio numeric
+@attribute lastActionWasRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute foldProb numeric
+@attribute callProb numeric
+@attribute raiseProb numeric
+@attribute action {fold,call,raise}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 4 (DemoBotSimpleBot)/arff/PreCheckBet.arff Fri May 13
04:46:54 2011
@@ -0,0 +1,30 @@
+@relation PreCheckBet
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute gameCount numeric
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute betFrequency numeric
+@attribute betFrequencyRound numeric
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute betProb numeric
+@attribute action {check,bet}
+
+@data
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 4 (DemoBotSimpleBot)/arff/PreFoldCallRaise.arff Fri
May 13 04:46:54 2011
@@ -0,0 +1,48 @@
+@relation PreFoldCallRaise
+
+@attribute roundCompletion numeric
+@attribute playersActed numeric
+@attribute playersToAct numeric
+@attribute gameCount numeric
+@attribute somebodyActedThisRound {false,true}
+@attribute nbActionsThisRound numeric
+@attribute potSize numeric
+@attribute stackSize numeric
+@attribute deficit numeric
+@attribute potOdds numeric
+@attribute maxbet numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute foldFrequency numeric
+@attribute callFrequency numeric
+@attribute raiseFrequency numeric
+@attribute foldFrequencyRound numeric
+@attribute callFrequencyRound numeric
+@attribute raiseFrequencyRound numeric
+@attribute isComitted {false,true}
+@attribute nbAllPlayerRaises numeric
+@attribute nbPlayerRaises numeric
+@attribute gameRaisePercentage numeric
+@attribute gameRaiseAmount numeric
+@attribute gameRaiseAmountRatio numeric
+@attribute lastActionWasRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute AFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute foldProb numeric
+@attribute callProb numeric
+@attribute raiseProb numeric
+@attribute action {fold,call,raise}
+
+@data
+0,0,4,1,false,0,1.5,100,0,0.4,0,4,4,1,0.71,0.16,0.16,0.71,0.14,0.15,false,0,0,0,0,0,false,0.24,0.128,2.4,0.24,0.182322,0.57,0.24,0.128,2.4,0.24,0.182322,0.57,0,1,0,call
=======================================
--- /dev/null
+++ /data/mctsbot/Agt 4 (DemoBotSimpleBot)/arff/Showdown.arff Fri May 13
04:46:54 2011
@@ -0,0 +1,86 @@
+@relation Showdown
+
+@attribute gameCount numeric
+@attribute potSize numeric
+@attribute logPotSize numeric
+@attribute stackSize numeric
+@attribute log1pStackSize numeric
+@attribute nbSeatedPlayers numeric
+@attribute nbActivePlayers numeric
+@attribute activePlayerRatio numeric
+@attribute betFrequency numeric
+@attribute foldFrequency numeric
+@attribute callFrequency numeric
+@attribute raiseFrequency numeric
+@attribute nbAllPlayerBetRaise numeric
+@attribute nbPlayerBetRaise numeric
+@attribute nbPlayerPreFlopBetRaise numeric
+@attribute nbPlayerPostFlopBetRaise numeric
+@attribute nbPlayerFlopBetRaise numeric
+@attribute nbPlayerTurnBetRaise numeric
+@attribute nbPlayerRiverBetRaise numeric
+@attribute allPlayerBetRaiseAmount numeric
+@attribute playerBetRaiseAmount numeric
+@attribute playerPreFlopBetRaiseAmount numeric
+@attribute playerPostFlopBetRaiseAmount numeric
+@attribute playerFlopBetRaiseAmount numeric
+@attribute playerTurnBetRaiseAmount numeric
+@attribute playerRiverBetRaiseAmount numeric
+@attribute allPlayerBetsAmount numeric
+@attribute playerBetsAmount numeric
+@attribute playerPreFlopBetsAmount numeric
+@attribute playerPostFlopBetsAmount numeric
+@attribute playerFlopBetsAmount numeric
+@attribute playerTuretsAmount numeric
+@attribute playerRiverBetsAmount numeric
+@attribute allPlayerRaisesAmount numeric
+@attribute playerRaisesAmount numeric
+@attribute playerPreFlopRaisesAmount numeric
+@attribute playerPostFlopRaisesAmount numeric
+@attribute playerFlopRaisesAmount numeric
+@attribute playerTurnRaisesAmount numeric
+@attribute playerRiverRaisesAmount numeric
+@attribute relNbPlayerBetRaise numeric
+@attribute relNbPlayerPreFlopBetRaise numeric
+@attribute relNbPlayerPostFlopBetRaise numeric
+@attribute relNbPlayerFlopBetRaise numeric
+@attribute relNbPlayerTurnBetRaise numeric
+@attribute relNbPlayerRiverBetRaise numeric
+@attribute relPlayerBetRaiseAmount numeric
+@attribute relPlayerPreFlopBetRaiseAmount numeric
+@attribute relPlayerPostFlopBetRaiseAmount numeric
+@attribute relPlayerFlopBetRaiseAmount numeric
+@attribute relPlayerTurnBetRaiseAmount numeric
+@attribute relPlayerRiverBetRaiseAmount numeric
+@attribute nbPlayerPreFlopBetRaiseTable numeric
+@attribute nbPlayerPostFlopBetRaiseTable numeric
+@attribute nbPlayerFlopBetRaiseTable numeric
+@attribute nbPlayerTurnBetRaiseTable numeric
+@attribute nbPlayerRiverBetRaiseTable numeric
+@attribute playerPreFlopBetRaiseAmountTable numeric
+@attribute playerPostFlopBetRaiseAmountTable numeric
+@attribute playerFlopBetRaiseAmountTable numeric
+@attribute playerTurnBetRaiseAmountTable numeric
+@attribute playerRiverBetRaiseAmountTable numeric
+@attribute lastActionWasBetRaise {false,true}
+@attribute VPIP numeric
+@attribute PFR numeric
+@attribute AF numeric
+@attribute AFq numeric
+@attribute logAFAmount numeric
+@attribute WtSD numeric
+@attribute opponentVPIP numeric
+@attribute opponentPFR numeric
+@attribute opponentAF numeric
+@attribute opponentAFq numeric
+@attribute opponentLogAFAmount numeric
+@attribute opponentWtSD numeric
+@attribute part0Prob numeric
+@attribute part1Prob numeric
+@attribute part2Prob numeric
+@attribute part3Prob numeric
+@attribute part4Prob numeric
+@attribute part5Prob numeric
+@attribute avgPartition {0,1,2,3,4,5}
+
+@data
=======================================
--- /dev/null
+++ /src/bots/mctsbot/ai/bots/bot/gametree/action/DoNothingAction.java Fri
May 13 04:46:54 2011
@@ -0,0 +1,29 @@
+package bots.mctsbot.ai.bots.bot.gametree.action;
+
+import java.rmi.RemoteException;
+
+import bots.mctsbot.client.common.gamestate.GameState;
+import
bots.mctsbot.common.api.lobby.holdemtable.holdemplayer.context.RemoteHoldemPlayerContext;
+import bots.mctsbot.common.elements.player.PlayerId;
+
+public class DoNothingAction extends SearchBotAction {
+
+ public DoNothingAction(GameState gameState, PlayerId actor) {
+ super(gameState, actor);
+ }
+
+ @Override
+ public GameState getStateAfterAction() throws GameEndedException,
DefaultWinnerException {
+ return gameState;
+ }
+
+ @Override
+ public GameState getUnwrappedStateAfterAction() {
+ return gameState;
+ }
+
+ @Override
+ public void perform(RemoteHoldemPlayerContext context) throws
RemoteException, IllegalActionException {
+ }
+
+}
=======================================
--- /dev/null
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/Sampler.java Fri May 13
04:46:54 2011
@@ -0,0 +1,117 @@
+package bots.mctsbot.ai.bots.bot.gametree.tls;
+
+import java.util.Random;
+
+import bots.mctsbot.ai.bots.bot.gametree.action.CallAction;
+import bots.mctsbot.ai.bots.bot.gametree.action.FoldAction;
+import bots.mctsbot.ai.bots.bot.gametree.action.RaiseAction;
+import bots.mctsbot.ai.bots.bot.gametree.action.SearchBotAction;
+import
bots.mctsbot.ai.bots.bot.gametree.search.expander.sampling.RelativeBetDistribution;
+import bots.mctsbot.ai.opponentmodels.OpponentModel;
+import bots.mctsbot.client.common.gamestate.GameState;
+import bots.mctsbot.common.elements.player.PlayerId;
+import bots.mctsbot.common.util.Triple;
+
+public class Sampler {
+
+ private OpponentModel model;
+ static Random random = new Random();
+
+ public Sampler(OpponentModel model, PlayerId bot) {
+ this.model = model;
+ }
+
+ public SearchBotAction sample(GameState state) {
+ Triple<Double, Double, Double> probs =
model.getFoldCallRaiseProbabilities(state, state.getNextToAct());
+
+ double rand = random.nextDouble();
+
+ if (rand < probs.getLeft())
+ return new FoldAction(state, state.getNextToAct());
+ if (rand < probs.getLeft() + probs.getMiddle())
+ return new CallAction(state, state.getNextToAct());
+
+ RelativeBetDistribution dist = new RelativeBetDistribution();
+ double sample = dist.inverseCdf(random.nextDouble());
+
+ double minBet = state.getLowerRaiseBound(state.getNextToAct());
+ double maxBet = state.getUpperRaiseBound(state.getNextToAct());
+ maxBet -= minBet;
+
+ sample *= maxBet;
+ sample += minBet;
+
+ return new RaiseAction(state, state.getNextToAct(), (int)
Math.round(sample));
+ }
+
+ public SearchBotAction sample(GameState state, SearchBotAction lowBound,
SearchBotAction highBound) {
+ Triple<Double, Double, Double> probs =
model.getFoldCallRaiseProbabilities(state, state.getNextToAct());
+
+ double foldProb = probs.getLeft();
+ double callProb = probs.getMiddle();
+ double raiseProb = probs.getRight();
+
+ if (lowBound instanceof CallAction)
+ foldProb = 0;
+ if (lowBound instanceof RaiseAction) {
+ foldProb = 0;
+ callProb = 0;
+ }
+ // if (highBound instanceof FoldAction) {
+ // callProb = 0;
+ // raiseProb = 0;
+ // }
+ if (highBound instanceof CallAction) {
+ raiseProb = 0;
+ callProb = 0;
+ }
+
+ RelativeBetDistribution dist = new RelativeBetDistribution();
+ double minBet = state.getLowerRaiseBound(state.getNextToAct());
+ double maxBet = state.getUpperRaiseBound(state.getNextToAct());
+
+ if (highBound instanceof RaiseAction) {
+ raiseProb = raiseProb * (1 - (((RaiseAction) highBound).amount -
minBet) / (maxBet - minBet));
+ }
+
+ double sum = foldProb + callProb + raiseProb;
+ foldProb /= sum;
+ callProb /= sum;
+ raiseProb /= sum;
+
+ double rand = random.nextDouble();
+
+ if (rand < foldProb)
+ return new FoldAction(state, state.getNextToAct());
+ if (rand < foldProb + callProb)
+ return new CallAction(state, state.getNextToAct());
+
+ double lowRaise = minBet;
+ double highRaise = maxBet;
+
+ if (lowBound instanceof RaiseAction)
+ lowRaise = ((RaiseAction) lowBound).amount;
+ if (highBound != null)
+ highRaise = ((RaiseAction) highBound).amount;
+
+ lowRaise -= minBet;
+ lowRaise /= (maxBet - minBet);
+
+ highRaise -= minBet;
+ highRaise /= (maxBet - minBet);
+
+ double lowSample = dist.cdf(lowRaise);
+ double highSample = dist.cdf(highRaise);
+
+ rand = random.nextDouble() * (highSample - lowSample) + lowSample;
+
+ double sample = dist.inverseCdf(rand);
+
+ maxBet -= minBet;
+
+ sample *= maxBet;
+ sample += minBet;
+
+ return new RaiseAction(state, state.getNextToAct(), (int)
Math.round(sample));
+ }
+}
=======================================
--- /dev/null
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/OpponentTree.java
Fri May 13 04:46:54 2011
@@ -0,0 +1,35 @@
+package bots.mctsbot.ai.bots.bot.gametree.tls.metatree;
+
+import bots.mctsbot.ai.bots.bot.gametree.action.SearchBotAction;
+import bots.mctsbot.ai.bots.bot.gametree.tls.Sampler;
+import bots.mctsbot.ai.bots.bot.gametree.tls.SimulatedGame;
+import bots.mctsbot.ai.bots.bot.gametree.tls.nodes.AbstractTLSNode;
+import bots.mctsbot.ai.bots.bot.gametree.tls.nodes.LeafNode;
+import
bots.mctsbot.ai.bots.bot.gametree.tls.strategies.selection.SamplingSelector;
+import
bots.mctsbot.ai.bots.bot.gametree.tls.strategies.selection.SelectionStrategy;
+import bots.mctsbot.ai.opponentmodels.OpponentModel;
+import bots.mctsbot.client.common.gamestate.GameState;
+import bots.mctsbot.common.elements.player.PlayerId;
+
+public class OpponentTree extends TLSTree {
+
+ Sampler sampler = new Sampler(model, bot);
+
+ public OpponentTree(PlayerId player, AbstractTLSNode parent, GameState
gameState, PlayerId bot, OpponentModel model) {
+ super(player, parent, gameState, bot, model);
+ // TODO Auto-generated constructor stub
+ }
+
+ private final SelectionStrategy selectionStrategy = new
SamplingSelector();
+
+ @Override
+ public SelectionStrategy getSelectionStrategy() {
+ return selectionStrategy;
+ }
+
+ @Override
+ public LeafNode selectRecursively(SimulatedGame game) {
+ SearchBotAction sample = sampler.sample(game.gameState);
+ return root.selectRecursively(sample, game);
+ }
+}
=======================================
--- /dev/null
+++
/src/bots/mctsbot/ai/bots/bot/gametree/tls/strategies/selection/SamplingSelector.java
Fri May 13 04:46:54 2011
@@ -0,0 +1,12 @@
+package bots.mctsbot.ai.bots.bot.gametree.tls.strategies.selection;
+
+import bots.mctsbot.ai.bots.bot.gametree.tls.nodes.AbstractTLSNode;
+
+public class SamplingSelector extends SelectionStrategy {
+
+ @Override
+ public AbstractTLSNode select(AbstractTLSNode node) {
+ return node.getRandomChild();
+ }
+
+}
=======================================
--- /src/bots/mctsbot/ai/bots/bot/gametree/tls/SimulatedGame.java Thu May
5 02:17:36 2011
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/SimulatedGame.java Fri May
13 04:46:54 2011
@@ -3,6 +3,10 @@
import java.util.Stack;

import bots.mctsbot.ai.bots.bot.gametree.action.SearchBotAction;
+import bots.mctsbot.ai.bots.bot.gametree.rollout.BucketRollOut;
+import bots.mctsbot.ai.opponentmodels.OpponentModel;
+import bots.mctsbot.client.common.gamestate.GameState;
+import bots.mctsbot.common.elements.player.PlayerId;

/**
*
@@ -12,6 +16,15 @@
*
*/
public class SimulatedGame extends Stack<SearchBotAction> {
+
+ public GameState gameState;
+ public final BucketRollOut rollout;
+ double value = 0;
+
+ public SimulatedGame(GameState gameState, PlayerId bot, OpponentModel
model) {
+ this.gameState = gameState;
+ this.rollout = new BucketRollOut(gameState, bot, model);
+ }

/**
*
@@ -19,7 +32,12 @@
private static final long serialVersionUID = -628544300776476142L;

public double getValue() {
- //TODO: implement simulation value
- return 0;
- }
-}
+ return value;
+ }
+
+ public void simulate() {
+ double stackSize = rollout.botState.getStack();
+ value = stackSize + rollout.doRollOut(4);
+ }
+
+}
=======================================
--- /src/bots/mctsbot/ai/bots/bot/gametree/tls/TLSBot.java Thu May 5
02:18:17 2011
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/TLSBot.java Fri May 13
04:46:54 2011
@@ -1,5 +1,6 @@
package bots.mctsbot.ai.bots.bot.gametree.tls;

+import java.io.IOException;
import java.rmi.RemoteException;

import bots.mctsbot.ai.bots.bot.AbstractBot;
@@ -7,6 +8,9 @@
import bots.mctsbot.ai.bots.bot.gametree.action.SearchBotAction;
import bots.mctsbot.ai.bots.bot.gametree.tls.metatree.RootTree;
import bots.mctsbot.ai.bots.bot.gametree.tls.nodes.LeafNode;
+import bots.mctsbot.ai.opponentmodels.OpponentModel;
+import bots.mctsbot.ai.opponentmodels.weka.WekaOptions;
+import bots.mctsbot.ai.opponentmodels.weka.WekaRegressionModelFactory;
import bots.mctsbot.client.common.GameStateContainer;
import
bots.mctsbot.common.api.lobby.holdemtable.holdemplayer.context.RemoteHoldemPlayerContext;
import bots.mctsbot.common.elements.player.PlayerId;
@@ -19,11 +23,25 @@
super(botId, gameStateContainer, playerContext);
this.decisionTime = decisionTime;
}
+
+ OpponentModel model;

@Override
public void doNextAction() {
long startTime = System.currentTimeMillis();
- RootTree root = new RootTree(botId);
+ WekaOptions config = new WekaOptions();
+ config.setUseOnlineLearning(true);
+ model = null;
+ try {
+ model =
WekaRegressionModelFactory.createForZip("bots/mctsbot/ai/opponentmodels/weka/models/model1.zip",
config).create(botId);
+ } catch (IOException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ } catch (ClassNotFoundException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ RootTree root = new RootTree(botId, gameStateContainer.getGameState(),
model);

do {
for (int i = 0; i < 34; i++)
@@ -45,12 +63,12 @@
}

private void iterate(RootTree root) {
- LeafNode leaf = root.selectRecursively();
-
- //does nothing yet
+ SimulatedGame game = new
SimulatedGame(gameStateContainer.getGameState(), botId, model);
+ LeafNode leaf = root.selectRecursively(game);
+
leaf.expand();

- SimulatedGame game = leaf.simulate();
+ game.simulate();
leaf.backPropagate(game);
}
}
=======================================
--- /src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/DecisionTree.java
Thu May 5 02:18:17 2011
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/DecisionTree.java
Fri May 13 04:46:54 2011
@@ -3,12 +3,14 @@
import bots.mctsbot.ai.bots.bot.gametree.tls.nodes.AbstractTLSNode;
import
bots.mctsbot.ai.bots.bot.gametree.tls.strategies.selection.SelectionStrategy;
import
bots.mctsbot.ai.bots.bot.gametree.tls.strategies.selection.WeightedUCTSelector;
+import bots.mctsbot.ai.opponentmodels.OpponentModel;
+import bots.mctsbot.client.common.gamestate.GameState;
import bots.mctsbot.common.elements.player.PlayerId;

public class DecisionTree extends TLSTree {

- public DecisionTree(PlayerId player, AbstractTLSNode parent) {
- super(player, parent);
+ public DecisionTree(PlayerId player, AbstractTLSNode parent, GameState
gameState, OpponentModel model) {
+ super(player, parent, gameState, player, model);
// TODO Auto-generated constructor stub
}

=======================================
--- /src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/RootTree.java Thu
May 5 02:18:17 2011
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/RootTree.java Fri
May 13 04:46:54 2011
@@ -1,12 +1,16 @@
package bots.mctsbot.ai.bots.bot.gametree.tls.metatree;

import bots.mctsbot.ai.bots.bot.gametree.action.SearchBotAction;
+import bots.mctsbot.ai.bots.bot.gametree.tls.SimulatedGame;
+import bots.mctsbot.ai.bots.bot.gametree.tls.nodes.LeafNode;
+import bots.mctsbot.ai.opponentmodels.OpponentModel;
+import bots.mctsbot.client.common.gamestate.GameState;
import bots.mctsbot.common.elements.player.PlayerId;

public class RootTree extends DecisionTree {

- public RootTree(PlayerId player) {
- super(player, null);
+ public RootTree(PlayerId player, GameState gameState, OpponentModel
model) {
+ super(player, null, gameState, model);
// TODO Auto-generated constructor stub
}

@@ -14,5 +18,9 @@
// TODO Auto-generated method stub
return null;
}
+
+ public LeafNode selectRecursively(SimulatedGame game) {
+ return super.selectRecursively(game);
+ }

}
=======================================
--- /src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/TLSTree.java Thu
May 5 02:17:36 2011
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/metatree/TLSTree.java Fri
May 13 04:46:54 2011
@@ -3,21 +3,27 @@
import java.util.ArrayList;
import java.util.List;

+import bots.mctsbot.ai.bots.bot.gametree.action.DoNothingAction;
+import bots.mctsbot.ai.bots.bot.gametree.tls.SimulatedGame;
import bots.mctsbot.ai.bots.bot.gametree.tls.nodes.AbstractTLSNode;
import bots.mctsbot.ai.bots.bot.gametree.tls.nodes.LeafNode;
import bots.mctsbot.ai.bots.bot.gametree.tls.nodes.RootNode;
import
bots.mctsbot.ai.bots.bot.gametree.tls.strategies.selection.SelectionStrategy;
+import bots.mctsbot.ai.opponentmodels.OpponentModel;
+import bots.mctsbot.client.common.gamestate.GameState;
import bots.mctsbot.common.elements.player.PlayerId;

public abstract class TLSTree {

public final PlayerId player;
+ public final PlayerId bot;
+ public final OpponentModel model;

public PlayerId getPlayer() {
return player;
}

- public RootNode getRoot() {
+ public AbstractTLSNode getRoot() {
return root;
}

@@ -25,14 +31,18 @@
return parent;
}

- public final RootNode root;
+ public final AbstractTLSNode root;
public final AbstractTLSNode parent;
private final List<LeafNode> children = new ArrayList<LeafNode>();
-
- public TLSTree(PlayerId player, AbstractTLSNode parent) {
+ protected GameState gameState;
+
+ public TLSTree(PlayerId player, AbstractTLSNode parent, GameState
gameState, PlayerId bot, OpponentModel model) {
this.player = player;
this.parent = parent;
root = new RootNode(this);
+ this.gameState = gameState;
+ this.bot = bot;
+ this.model = model;
}

public boolean isRoot() {
@@ -49,8 +59,11 @@
return null;
}

- public LeafNode selectRecursively() {
- return root.selectRecursively();
+ public LeafNode selectRecursively(SimulatedGame game) {
+ if (game.gameState.getNextToAct() == player)
+ return root.selectRecursively(game);
+ else
+ return root.selectRecursively(new DoNothingAction(game.gameState,
player), game);
}

/*
@@ -65,4 +78,8 @@

public abstract SelectionStrategy getSelectionStrategy();

-}
+ public GameState getGameState() {
+ return gameState;
+ }
+
+}
=======================================
--- /src/bots/mctsbot/ai/bots/bot/gametree/tls/nodes/AbstractTLSNode.java
Thu May 5 02:17:36 2011
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/nodes/AbstractTLSNode.java
Fri May 13 04:46:54 2011
@@ -1,5 +1,7 @@
package bots.mctsbot.ai.bots.bot.gametree.tls.nodes;

+import java.util.Random;
+
import bots.mctsbot.ai.bots.bot.gametree.action.ProbabilityAction;
import bots.mctsbot.ai.bots.bot.gametree.action.SearchBotAction;
import
bots.mctsbot.ai.bots.bot.gametree.mcts.strategies.backpropagation.SampleWeightedBackPropStrategy;
@@ -89,17 +91,15 @@
}

public GameState getGameState() {
- // TODO Auto-generated method stub
- return null;
+ return getTree().getGameState();
}

public PlayerId getBot() {
- // TODO Auto-generated method stub
- return null;
+ return getTree().bot;
}

- public LeafNode selectRecursively() {
- return getTree().getSelectionStrategy().select(this).selectRecursively();
+ public LeafNode selectRecursively(SimulatedGame game) {
+ return
getTree().getSelectionStrategy().select(this).selectRecursively(game);
}

public void replaceNode(LeafNode original, InnerNode replacement) {
@@ -109,5 +109,18 @@
rightChild = replacement;
assert false;
}
+
+ private final static Random random = new Random();
+
+ public AbstractTLSNode getRandomChild() {
+ //TODO fix with opponentmodel
+ double randomNumber = random.nextDouble();
+ if (randomNumber < 0.5)
+ return getLeftChild();
+ else
+ return getRightChild();
+ }
+
+ public abstract LeafNode selectRecursively(SearchBotAction sample,
SimulatedGame game);

}
=======================================
--- /src/bots/mctsbot/ai/bots/bot/gametree/tls/nodes/InnerNode.java Thu
May 5 02:17:36 2011
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/nodes/InnerNode.java Fri May
13 04:46:54 2011
@@ -1,5 +1,7 @@
package bots.mctsbot.ai.bots.bot.gametree.tls.nodes;

+import bots.mctsbot.ai.bots.bot.gametree.action.SearchBotAction;
+import bots.mctsbot.ai.bots.bot.gametree.tls.SimulatedGame;
import bots.mctsbot.ai.bots.bot.gametree.tls.metatree.TLSTree;
import bots.mctsbot.ai.bots.bot.gametree.tls.tests.Test;
import bots.mctsbot.ai.bots.util.RunningStats;
@@ -8,9 +10,17 @@

public Test test;

- public InnerNode(AbstractTLSNode parent, TLSTree tree, Test test,
RunningStats stats) {
- super(parent, tree, stats);
+ public InnerNode(AbstractTLSNode abstractTLSNode, TLSTree tree, Test
test, RunningStats stats) {
+ super(abstractTLSNode, tree, stats);
this.test = test;
}
+
+ @Override
+ public LeafNode selectRecursively(SearchBotAction sample, SimulatedGame
game) {
+ if (test.succeeds(sample))
+ return rightChild.selectRecursively(sample, game);
+ else
+ return leftChild.selectRecursively(sample, game);
+ }

}
=======================================
--- /src/bots/mctsbot/ai/bots/bot/gametree/tls/nodes/LeafNode.java Thu May
5 02:17:36 2011
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/nodes/LeafNode.java Fri May
13 04:46:54 2011
@@ -3,36 +3,58 @@
import java.util.ArrayList;
import java.util.List;

+import bots.mctsbot.ai.bots.bot.gametree.action.DefaultWinnerException;
+import bots.mctsbot.ai.bots.bot.gametree.action.GameEndedException;
import bots.mctsbot.ai.bots.bot.gametree.action.SearchBotAction;
+import bots.mctsbot.ai.bots.bot.gametree.tls.Sampler;
import bots.mctsbot.ai.bots.bot.gametree.tls.SimulatedGame;
+import bots.mctsbot.ai.bots.bot.gametree.tls.metatree.DecisionTree;
+import bots.mctsbot.ai.bots.bot.gametree.tls.metatree.OpponentTree;
import bots.mctsbot.ai.bots.bot.gametree.tls.metatree.TLSTree;
import bots.mctsbot.ai.bots.bot.gametree.tls.tests.Test;
import bots.mctsbot.ai.bots.util.RunningStats;
+import bots.mctsbot.client.common.gamestate.GameState;
+import bots.mctsbot.common.elements.player.PlayerId;

public class LeafNode extends AbstractTLSNode {

public TLSTree childTree;
private List<Test> possibleTests = null;
private List<SearchBotAction> samples = new ArrayList<SearchBotAction>();
+ Sampler sampler = new Sampler(getTree().model, getBot());

public LeafNode(AbstractTLSNode parent, TLSTree tree, RunningStats stats)
{
super(parent, tree, stats);
}

public void expand() {
- //TODO:FIX EXPANSION
- //childTree = new TLSTree(this.getTree().getPlayer(), this);
+ PlayerId nextPlayer =
getGameState().getNextSeatedPlayerAfter(getTree().getPlayer()).getPlayerId();
+
+ if (nextPlayer == getBot())
+ childTree = new DecisionTree(nextPlayer, this, getGameState(),
getTree().model);
+ else
+ childTree = new OpponentTree(nextPlayer, this, getGameState(),
getBot(), getTree().model);
}

- public LeafNode selectRecursively() {
+ public LeafNode selectRecursively(GameState state, SimulatedGame game) {
if (childTree == null)
return this;
- return childTree.selectRecursively();
- }
-
- public SimulatedGame simulate() {
- // TODO Auto-generated method stub
- return null;
+
+ AbstractTLSNode parent = this.getParent();
+ SearchBotAction lowBound = null;
+ SearchBotAction highBound = null;
+ while (!(parent instanceof RootNode) && (highBound != null ||
lowBound != null)) {
+ if (highBound == null && this == parent.getLeftChild())
+ highBound = ((InnerNode) parent).test.getTestAction();
+ else if (lowBound == null)
+ lowBound = ((InnerNode) parent).test.getTestAction();
+ }
+ if (highBound == null && this == parent.getLeftChild())
+ highBound = ((InnerNode) parent).test.getTestAction();
+ else if (lowBound == null)
+ lowBound = ((InnerNode) parent).test.getTestAction();
+
+ return this.selectRecursively(sampler.sample(state, lowBound,
highBound), game);
}

@Override
@@ -77,11 +99,33 @@
}

private Test getBestTest() {
- // TODO Auto-generated method stub
- return null;
+ Test bestTest = possibleTests.get(0);
+ for (int i = 1; i < possibleTests.size(); i++) {
+ if (possibleTests.get(i).getSDR() > bestTest.getSDR())
+ bestTest = possibleTests.get(i);
+ }
+ return bestTest;
}

private boolean needsToBeSplit() {
return getNbSamples() > 30;
}
-}
+
+ @Override
+ public LeafNode selectRecursively(SearchBotAction sample, SimulatedGame
game) {
+ game.push(sample);
+ if (childTree == null)
+ return this;
+ try {
+ game.gameState = sample.getStateAfterAction();
+ return childTree.selectRecursively(game);
+ } catch (GameEndedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (DefaultWinnerException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ throw new IllegalArgumentException();
+ }
+}
=======================================
--- /src/bots/mctsbot/ai/bots/bot/gametree/tls/tests/Test.java Thu May 5
02:17:36 2011
+++ /src/bots/mctsbot/ai/bots/bot/gametree/tls/tests/Test.java Fri May 13
04:46:54 2011
@@ -3,6 +3,7 @@
import bots.mctsbot.ai.bots.bot.gametree.action.BetAction;
import bots.mctsbot.ai.bots.bot.gametree.action.CallAction;
import bots.mctsbot.ai.bots.bot.gametree.action.CheckAction;
+import bots.mctsbot.ai.bots.bot.gametree.action.DoNothingAction;
import bots.mctsbot.ai.bots.bot.gametree.action.FoldAction;
import bots.mctsbot.ai.bots.bot.gametree.action.RaiseAction;
import bots.mctsbot.ai.bots.bot.gametree.action.SearchBotAction;
@@ -11,7 +12,7 @@

public class Test {

- private static final Class[] line = { FoldAction.class,
CheckAction.class, CallAction.class, BetAction.class, RaiseAction.class };
+ private static final Class[] line = { DoNothingAction.class,
FoldAction.class, CheckAction.class, CallAction.class, BetAction.class,
RaiseAction.class };
private final SearchBotAction testAction;
private final int testIndex;

@@ -25,6 +26,10 @@
testIndex = findIndex(action);
this.node = node;
}
+
+ public SearchBotAction getTestAction() {
+ return testAction;
+ }

public void updateStats(SearchBotAction action, double value) {
if (succeeds(action))
@@ -33,7 +38,7 @@
failStats.add(value);
}

- private boolean succeeds(SearchBotAction action) {
+ public boolean succeeds(SearchBotAction action) {
if (findIndex(action) < testIndex)
return false;
if (testAction instanceof BetAction && action instanceof BetAction)

Reply all
Reply to author
Forward
0 new messages