Introdução
Há muito tempo quero escrever um artigo sobre meu hobby, que se tornou algo grande para mim.
Eu me formei na Faculdade de Matemática (TvSU) em 2012. Durante meus estudos, joguei pôquer profissionalmente, ao vivo e online (yura_ $ 198802, conta principal do PS). Não posso dizer que fui super bem-sucedido, mas para um aluno é um trabalho de meio período. Já em 2011 comecei minha carreira como programador e continuo até hoje. Esta é minha principal fonte de renda. Mas em algum momento de 2014, decidi seriamente começar a escrever um bot de pôquer para plataformas online. Neste momento, o “I” transformou-se numa equipa de entusiastas, que está a impulsionar este projecto! Mesmo na universidade, ele estava bastante familiarizado com o classificador bayesiano e também tinha ideias básicas sobre redes neurais. Agora se tornou "mainstream" pensar que se você encontrou dados relevantes e treinou corretamente a malha usando (ML, CatBoost, TensorFlow, etc.),então você fez algo semelhante a "inteligência artificial" (doravante AI). Achei que se eu revelar a arquitetura de nível superior do meu projeto, pode surpreender alguém que a IA é mais do que isso. (apenas não para profissionais da área ) E mesmo em um jogo como o pôquer, onde pareceria impossível fazer sem redes neurais (na verdade, é mesmo), até o momento de sua integração orgânica no produto, isso me levou cerca de 2500 dias pessoalmente. Quero ressaltar de imediato que a maneira como você sabe todas as informações sobre todos os participantes e brinca com os mesmos, onde você pode simplesmente montar uma maquete e treiná-la para o melhor e estar entre eles, não é adequada para o real online pôquer. Aqui você precisa fazer um sistema especialista inicial, que já pode ser melhorado e modificado por um tempo infinitamente longo.
PS Presume-se que o leitor conheça os termos de pôquer e TI.
Chamamos nossa solução ->
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 A estimativa de preço é puramente pessoal, os bots não estão à venda. Um artigo para se divertir. Obrigado por ler até o fim.