Introduction
I have long wanted to write an article about my hobby, which has become something big for me.
I graduated from the Faculty of Mathematics (TvSU) in 2012. During my studies, I played poker professionally, both live and online (yura_ $ 198802, main PS account). I can't say that I was super successful, but for a student it's quite a part-time job. Already in 2011 I started my career as a programmer and continue it to this day. This is my main source of income. But somewhere in 2014, I seriously decided to start writing a poker bot for online platforms. At the moment, โIโ has turned into a team of enthusiasts, which is moving this project forward! Even at the university, he was quite familiar with the Bayesian classifier, and also had basic knowledge of neural networks. Now it has become "mainstream" to think that if you found relevant data and correctly trained the mesh using (ML, CatBoost, TensorFlow, etc.),then you have done something similar to "artificial intelligence" (hereinafter AI). I decided that if I reveal the top-level architecture of my project, it might surprise someone that AI is more than that. (just not for professionals in this field ) And even in such a game as poker, where it would seem impossible to do without neural networks (in fact, it really is), until the moment of their organic integration into the product, it took me about 2500 days personally. I want to note right away that the way when you know all the information about all the participants and play with the same ones, where you can simply assemble a model and train it for the best and be among them, is not suitable for real online poker. Here you need to make an initial expert system, which can already be improved and modified for an infinitely long time.
PS It is assumed that the reader knows poker and IT terms.
We named our solution ->
MONICA
Monica.Proxy
. -, AI. C#, . ( ).
Client API - , (JSON XML) . , . , , , . (RPC).
ORM -
MySQL. ORM Devexpress. DTO(DAL) . PostgreSQL , PT4 HoldemManager. . postgresql , , . , .
Update Module - , TeamCity , ;) . ( , ), ( http, ), http ftp . , , , .
Security - , - - , . (X509Certificat), XML(JSON). , , , , ( ) token MD5, , .
. ! . (, ) . , . Poker Stars .
( https://www.eziriz.com/dotnet_reactor.htm , , , https://www.gapotchenko.com/eazfuscator.net). exe, , . exe(), . , Amaya Gaming Group( PokerStars). ;) 2 PokerStars ( ). 1- handhistory, , 2- . WinApi , . "". 3 ;)
, , , . . Windows, . .
Poker core - C ( C#) - 2000 . 52. ( ) , , , , , Pod Odds. 1000 0.1 , , 100+ , . , , . -, , , , .
Replayer - gui wpf, AI. . .
GUI - , , Gui . , , .
AI , .
Open Fold - , .
1vs0 - , 3 , 4 , , . , . .
1vs1 - , .
1vs2 - , .
1vs3< - , .
, , , .
, , 1 1.
AI, .
, . .
( ) . . , , , , , , , , , , 3 , , (pod odds), . . , . , . . ( ), .
AI
, m_hand, . m_decision, .
(, , ( ), Allin). 130 . 9 - . .
:
Open Push(Open Raise) EP,MP, CO,BTN,SB , , . ( 1.5,1.9, 2.2, 2.5, 2.7, 3, 4 ,5 ,7 ,10 ,13 ,17 ,25 , 30, 35 ,42, 50). , . . , , , , (- ICM, . ). . , . , X , X [1,8] , Y, Y [1,8] , X>Y, . . .
EP, MP, CO, BTN,SB,BB 3 . CO,SB,BTN,BB ( 1.5,1.9, 2.2, 2.5, 2.7, 3, 4 ,5 ,7 ,10 ,13 ,17 ,25 , 30, 35 ,42, 50), 4 . .
, PT4(PostgreSQL). , (3 ) , ColdCall. .
, . . ..
, , , , , . , .
โHeroโ 30 , , , . ( ) ( ), - ! PioSolver, , , ( ). ( ) 15 ( 0-25).
20( 0-25). . 50 , . 1755 Pio Solver, . 500 (7020 ), (0.03 -0.4) . (0.5-2). 3 . ( 10 , 14, , ). , , โโ
AI , , , 3 , . . . ITM MTT>100 ( ) 26%, 10 . , , , . . PioSolver. (52650 ) , , .
PioSolver API - . PioSolver (OOP) (IP), . , , ( edge). ( ). API( AI) . , , API . , Pio, API . .
Monica.Client
, . , , . , ! (888, party, PS). Windows( 7 ). , .
Scan Engine - 0.1 . , , ( , ) . . ! - . .
Keyboard API mouse API - ( ), ( C++), API, , . , , . PokerRoom.
API winAPI. ( , 888).
Monica.Reader
Gui, . , , . WEB(PimeVue), .
!? ?!
ROI -50%(ROI , . .) ROI 20% , . . -, . PokerStars , . , PokerStars , , , . $50, - " $50k", ;)
Ps The price estimate is purely my personal, bots are not for sale. An article for fun. Thanks for reading to the end.