retrieving data from a poker table

Started by
15 comments, last by Rockoon1 16 years, 11 months ago
Im not sure if anyones familiar with this feature, but a lot of online poker software has it. The best example Ive seen is from http://www.calculatem.com/ I was wondering if anyone knew how they did this? Im working on a program that should eventually be capable of playing poker online, and Id like a way to automate it by having it retrieve its own input from the table.
Advertisement
By sniffing and analyzing packets. Basically, you need to reverse engineer their netwrok code (including any encryption they use, etc). If the game client can display your hand then the server had to send your computer information on the contents of that hand.

You cannot get data on the other people's hands b/c that's not sent over the network.

-me
haha I know you cant get data on other peoples hands, not at any decent site at least, and even then youd have to hack their server. Thats a good idea tho, I never even considered going that route. That would probably be really easy to do, once I found out what port its on..

Im not sure how windows handles two applications listening on the same port however, is there something special I would have to do to be able to intercept packets without interfering?
I tried this route, but the packets are encrypted, even though they contain nothing sensitive. It's like they guess people would try and do this. :)

Being one of those that did, the solution I went with was to inject a DLL into the app's process and read the text boxes and button states. Along with saving out the cards and scanning the screen (which is needed sometimes) I got all I needed to randomly join a table at any chair, wait for the BB, then start betting properly.

Bugger is, my AI didn't do too well. In fact it lost slighly quicker than I do for real. The main problem is that n00bz in low-stakes games don't play well enough to infer anything at all from them, nor can you fold them off a draw, and I daren't run the AI in the high-stakes room in case a bug lost me 100 bucks a minute.

Thing about low-stakes online poker is that when you're facing 8 flush-chasing n00bz, they won't fold their hands and one or two of them will make their flush every time or otherwise river rat you to death in some other spectacular way.

I also tried doing a NL ultimate mega rock AI that just bet the blind, saw the flop then only really acted when flopping a mega hand - trips or better. That lost slightly more as it's hard to disguise after a while.

After climbing the impossible mountain I was seriously pissed about how bad my program ended up.
------------------------------Great Little War Game
The idea with playing against fish at low stakes cash games is not to make them fold their draws, it's to push as much money as possible into the pot while you think you're ahead. The reasoning being that they will call with inferior hands and make decisions that are -EV, making you the winner in the long run. Sometimes they will suck out, most of the time they will not. Being called for all your money while you're a 2 to 1 favourite is a winning play against morons (who often will make those calls, or worse).

And if you're on the draw, they'll often bet too little to price you out. Another +EV situation for you.

Beating ultra-low-stakes tables is ridiculously easy if you're patient, have a sufficient bankroll and know your odds. There's no reason why you couldn't make a successful bot for those levels.
BTW, this is highly illegal.
Forget illegal, it's morally unconscionable.
well Ive managed to make close to $1000 off my initial $10 off low stakes poker using a pretty simple strategy. Like Oyster stated, the fact that they make insane calls makes it very profitable for you in the long run. I could probably write a simple enough program that just followed my strategy minus all the stupid on-tilt mistakes I make. However Im going for something more complicated. Could u possibly send me some more information on what you did?

Besides the US anti-gambling laws, how is this illegal? Its not cheating, its not fraud, I dont see anything wrong with it. I emailed one of the poker sites asking them about it, but I dont see why writing your own poker client would be more illegal then using theirs.

Morally, again I dont see much wrong with it. Theres nothing wrong with writing your own poker client program is there? Is there anything wrong with writing a program that tells you the best actions based on some player stats? Then why is there anything wrong with a program that just takes the best action rather than telling it to u? Unless you think gambling is morally wrong, I dont see why writing a program to gamble for you is.
either way, my main goal is to write a program that plays poker "well". Thinking over the consequences of using it for my own financial gain, it would probably be best not to use it on any poker sites. If I were to make a lot of money, I would be committing tax evasion, illegal gambling, and possibly a few other laws.

I do need to be able to have the program train off real games however. Although possible, I doubt the program can really fully learn to play just by playing itself. This is because playing itself would only teach it to do well against itself. Even if I have 1000 different versions all playing each other, they will still probably do better against themselves than against real players. So to fully train this program, I would need to at least let it observer real games. It would be possible to train it by just allowing it to watch me play and observe the outcomes of my actions.
My impression was that is merely a card counting utility.

Those, unless I'm mistaken, are not illegal, but counting cards in a casino will get you thrown out simply because it breaks the odds from being in favor of casino - you're not thrown out due to some law, but are simply refused service.

Casinos live or die by that slim profit margin built into every single game.

For player vs. player, this is irrelevant. There are no artificial odds to go against, you're playing against real players. So on the other hand, you might have someone who just learned poker, or a professional, card counting gambler.

If this is playing against computer, well, poker strategies, winning tactics and chances are well documented. Unless there's a flaw in the system (RNG or something similar), then these odds will either need to even out over the long run (ultimately, it's still a game of chance), or, if a flaw does exist, the company running it will go bankrupt after being botted dry in 12 hours.

But I believe these games are multi-player, with no computer generated gameplay beyond the card dealing.

So I don't think there's any problem with this. Then again, if you made $1000, why not buy that utility, and see either how it works, or use it to make $100,000? Or a million, why be modest.

(warning: long-term winnings may be smaller than they apear )

Quote:This is because playing itself would only teach it to do well against itself. Even if I have 1000 different versions all playing each other, they will still probably do better against themselves than against real players. So to fully train this program, I would need to at least let it observer real games. It would be possible to train it by just allowing it to watch me play and observe the outcomes of my actions.


You'd also win the Turing award, for creating first fully rational AI.

Players adapt. No matter which algorithm you use, it would always be lagging behind, and merely follow other's strategies.

Unlike chess, the rules of the game here are vastly different, so computer AI has a huge handicap. You're still much better off with statistical aproach. At least there you have hard-coded boundary conditions. AI against real people could not only produce sub-optimal results, it would most likely expose a flaw.

This topic is closed to new replies.

Advertisement