PDA

View Full Version : A Bot's Life


Stephen Marks
12-29-2003, 03:32 PM
A Bot's Life: Part I


About 3 years ago, with a very early version of my bot, playing in it's very first week on the University of Alberta site, a very unusual thing happened: The bot lost a hand quads over quads. Ah, a bad beat. I was pretty surprised, I had never seen a bad beat in 20 years of
occasional casino play, nor in a year-plus of Online play. Wow. Good thing for me that it was for play money, it sure lost a lot on that hand.

How did I start to write a poker bot? Hm. A little background is useful. As a young CS researcher years ago, I worked on Chess and Bridge programs. I had read the Alberta papers on Poker, studied how Wilson's program works,
"The Theory of Poker" and "HFAP" and other books, and had some ideas on how a program could play to win in both Play and Real money online games.

I had also read a posting on 2+2, which rang true to me, about how someone was playing online with a bot. Why did it ring true? The technical challenges which the poster claimed to have solved were spot on. Also, the low skills of many of the LL holdem players on the internet seemed to be ripe for beating by a moderately intelligent bot.

I used a starting point, suggested by another poster here, it was simply to write a program like Wilson's Texas Turbo Holdem (TTHE). TTHE is excellent as a learning tool, but some of its play is dubious since it is missing some important features. I felt it was a great starting place
nonetheless.

Laid out in a outline, I faced the following issues:

1. Create a prototype which played decently, in the mode of Wilson.

Play this bot at Alberta.

2. Improve it's play, fix bugs. This might include new rules, but no special cases or pattern matching or intra-move intelligence.

Play more.

Alberta and IRC poker have text modes, so making a bot which can connect to them is pretty simple if you are a competent programmer. Connecting to an Online poker room and playing there programmatically is very difficult,
but that is step 3.

3. Write a general program which uses the screen graphics to determine moves.

Since sites make it difficult to grab the text window which give some indication of who did what and when, or name the cards the players holds, the graphics program needs to read the graphics on the screen to determine actions.

This was very very difficult to achieve.

4. Play in PLAY games online to debug graphics program.

Useful to debug step 3 above especially.

5. Play in PLAY games online to review play.

Shock of all shocks. Little botty lost online in play games. I soon figured out why. Any ideas anyone? What do you have to keep track of which TTHE doesn't (and many players either).

6. Win in PLAY games online.

This is very doable with not much more than TTHE and one small adjustment, once I realized what it was.

7. Win in REAL MONEY games online.

We have consistently beaten online games for about 2 years. Me and little botty. I hope to discuss what needed to be done over the next few weeks or months.

Who am I? My pseudonym is Stephen Marks. I am Computer Programmer with a nice technical background turned Executive. Think of me as the MD of a nice midsize software company. (That's Managing Director.)

Ah, a name for botty...let's just call him Botty.

PLAY OF THE WEEK
----------------

Botty is in the BB with Ac4c. Three callers, then a late position raise. Five to the flop of 9c4h7s. Checked to the raiser, who bets. Early versions of Botty (and TTHE) would have either bet and then folded to the obvious raise coming or checked and folded to one bet. Botty sees the Ace + underpair,the nice pot, and the backdoor flush. We call. 4 to the turn for the Qc. Now there are obvious outs for a call or raise (depending on the player count) and of course a club on the river wins it. Not super extraordinary, but
much better than a lot of 2/4, 3/6 online humans.


BAD BEAT OF THE WEEK
--------------------

On two different sites, total of 5 AA's over 2 hours at
3/6. 3 of them flopped a set. All 3 lost headsup. One of the other two AA's lost also to a rivered inside straight. 1 for 5 with AA. Not too good. (When I played online, I would have smashed the keyboard into the monitor; Botty just sighed and went on.)


BUG OF THE WEEK
---------------

Here is a beauty: Very unusual special case, looking like:

if (underpair && A || B || C && which != RIVER)
{
strcmp(betstring, "B2"); /* bet and call one raise */
}

The special case was an underpair and other interesting patterns/conditions (A or B or C), and only before the river. Since Botty (almost) never gets to the river with junk like underpair and A or B or C,I was very surprised reading the log to find I was at the river and making a bet from the button, getting checkraised, and then calling. Oh
oh. Well of course, the parens are missing from the expression. It wasn't so obvious, since A, B and C are all pretty complex. Not only is this wrong, but I found and fixed another like it. Big surprise was finding something
like this after years of playing.

Fixed to:

if (underpair && which != RIVER && (A || B || C))
{
strcmp(betstring, "B2"); /* bet and call one raise */
}

IMPROVEMENT OF THE WEEK
-----------------------

Oh so many of them.

I read logs at night and make small improvements. Here is a nice one, I know it's useful, maybe you could think this is even a bug: Botty bets at pots when opponents show weakness. Code is in the system for FLOP, TURN and RIVER steals. On the turn, depending on the opponent betting pattern (i.e. lack of betting), Botty will try to pick
up the pot with a bet, especially from late position. What about early and middle? New code will play at the pot, based on Preflop and Flop betting patterns of the others, from early or middle, with almost anything (but usually not nothing, depending on the pattern). Initial results are
positive and encouraging. (I usually add incrementally, so we will see).

Another: Two pair, top and bottom, on the turn. 3 players. One of whom raised on the flop. The rule and modifier used to be: bet or raise once, and call all bets. This has to be wrong. Two other players who will bet/raise and reraise have this hand beat, especially after preflop or flop bets.
Code now bets or raises once, but will fold to 2 bets from others....the most this will cost when beat is two big bets, and it will save two or more bets in all cases. Occasionally it will cost the pot when you have two
bluffers or overplayers or a miracle hits the river, but calling caps on the turn with top and bottom, especially after previous bets is not too smart, at least in these games. Or Bob's my uncle.


RESULTS
-------

Playing at 2/4 and 3/6, Botty won about $800 in about 2000 hands this week. This is very high for Botty, but I had a lot of time free before the Holidays, rewrote some code and fixed some bugs. It's play was quite surprisingly error-free and strong (and ahem, LUCKY). It has gotten slaughtered at 5/10 -- which we simply do not play for now -- and also it quits when the game gets too shorthanded.

Next time: Answers to some questions, and also reading board graphics.

Stephen Marks (AKA)

PS What do you think Dave? Sorry this took so long...

mikeklein
12-29-2003, 07:31 PM
'Stephen', if you're interested in being part of a TV doc about the influence of technology on gambling, let me know. See my website at http://highandwild.hypermart.net
I'm doing a new TV doc after the success of another one I recently did for Discovery/BBC.

squiffy
12-29-2003, 08:33 PM
In the early stages of real money play, did you program in some kind of stop loss to prevent from catastrophic losses, or were you simply always present observing while the computer played live?

Do you allow the computer to play for you for extended periods now when you are not present?

As a chess player I have always been fascinated by chess playing programs. And I recently read a wonderful book, which I borrowed from my local library, written by a Chinese graduate student who worked on the development of Deep Blue with a team of students. What a fascinating read.

I recently started playing online poker and became curious about poker playing bots and chess playing bots.

If I wanted to start learning programming as a fun hobby, where would I begin? What kind of beginning courses would you recommend that would get me up to speed.

I understand it may take me 10 years of study. But I seriously would like to learn more about programming and would love the challenge of learning basic programming.

But where would a person begin now?

When I was in high school people were still studying Fortran and programming with IBM punch cards. SO I want to skip over obsolete and unnecessary programming courses and get straight to a useful language which would enable me to fiddle with a basic program.

If you ever need an opponent for free BETA testing, I would be happy to volunteer to play my A game even for play money.
Though it looks like you are beyond that stage.

I am surprised you did the play money stage because I had always assumed play money players were so radically different from real money players that the "experience" might actually be bad for your program.

I just have no conception of how you would develop a program that could "read" the data produced by the poker website and convert that into intelligible information.

But I know this must be very doable because I play chess online at the ICC Internet Chess Club and there are legitimate bot programs as well as cheaters who are caught with undisclosed bots. And they clearly have developed programs that interface with the website graphics and translate graphical movement of pieces into binary info that the computer can digest.

P.S. I was a middle school science teacher for about 5 years, but now am a lawyer. In many ways I miss teaching. A project like this would have been fun to teach. Though I would have to teach chess programming as poker programming I am sure would have been considered inappropriate.

A simple chess program would be a wonderful and fun way to teach computer programming if it is not too difficult to teach a basic lesson.

Though I suppose kids today might be more interested in programming of video games.

squiffy
12-29-2003, 08:50 PM
Also any general thoughts of how to program for No Limit play, short-handed play.

Also, computer programs have databases of thousands of games. So I would imagine, in theory, if you could access every game every played by every player on PartyPoker, an intelligent poker bot funded by IBM, could "learn" the poker playing styles, strengths, and weaknesses of many many thousands of opponents, at various levels of play.

In some ways, this is a WAG, but I wonder if programming for Party $25 no limit may actually be easier than programming for a $1-2 limit game.

1800GAMBLER
12-30-2003, 02:44 AM
Really i'd just like a bot that i include a set of rules for playing a hand preflop and when one comes up it alerts me. Wouldn't take the fun out of poker and would make me happier.

Teaching a bot to play poker might be possible with huge amounts of work, but this can't be that hard right?

spike
12-30-2003, 06:31 AM
[ QUOTE ]
if (underpair && A || B || C && which != RIVER)
{
strcmp(betstring, "B2"); /* bet and call one raise */
}

Fixed to:

if (underpair && which != RIVER && (A || B || C))
{
strcmp(betstring, "B2"); /* bet and call one raise */
}


[/ QUOTE ]

I don't understand why this fix makes any difference at all. Since you're ignoring the returned value of the string compare anyway, this whole if statement has no effect in either the 'buggy' or 'fixed' state.

Unless possibly underpair, which, RIVER, A, B or C are preprocessed strings which possibly have side-effects thus making the order of evaluation within the if statement relevant?

Schneids
12-30-2003, 07:52 AM
Nice post /images/graemlins/smile.gif

I know almost nothing about computer programming but I thoroughly enjoyed reading your post. I'll be looking forward to more of them, since this kind of reading interests me.

Just make sure enough of your future posts contain thoughts in a language us non programmers can understand too, so as to explain what sort of thought processes and features you implement into the bot (for instance, whether it takes into account PF raise %'s of other players in determining whether to play a hand or muck) and what sort of issues arise when trying to make it more 'human'.

Good work, keep it up!

DrSavage
12-30-2003, 12:11 PM
To me it just seems he meant strcpy instead of strcmp.
Although if he really has strcmp in the program that could be bug of the month indeed. /images/graemlins/tongue.gif

tomcain
12-30-2003, 12:38 PM
Stephen

As a loooong time programmer, I find this fascinating. I have done a lot of quite complicated projects over a long time. I have been thinking about this a little. One issue is that programs are no better that the people writing the programs(ie microsoft(g)). So to write a very good poker program you need to be a very good poker player.

[ QUOTE ]
Since sites make it difficult to grab the text window which give some indication of who did what and when, or name the cards the players holds, the graphics program needs to read the graphics on the screen to determine actions.

This was very very difficult to achieve.


[/ QUOTE ]

I agree this is very difficult and it also leaves you open to the whims of people changing their graphics. I would wonder if there is not a way to snoop the socket traffic and decode what they are sending. It is possibly encrypted but it depends on where the encryption is done. If the encryption is done using https you might be able to get the input and output to the https request on the windows machine. In a former life I did a lot of reverse engineering of software.

Good luck, tom

jdoulami
12-30-2003, 12:59 PM
I believe this is done already, i saw a software under the name "Paragon PokerPal" claiming a feature that makes it sound like they solved the problem towards the socket-reading direction rather than screen scraping. Anybody knows more?

squiffy
12-30-2003, 01:15 PM
Yes, in the case of Deep Blue, the IBM team hired grandmasters to work with them and help them evaluate the various chess positions achieved. Ultimately, the program is a storehouse and compilation of hundreds of years of collective chess wisdom. Overwhelming and awesome. And yet it can still be beaten as there are bugs and weaknesses which need to be shored up.

In particular computer programs tend to be excellent at open games and tactical calculations. They have a tougher time with longer-term evaluation and play of closed positions. I guess the latter type of wisdom is harder to program and a bit more "intuitive."

slavic
12-30-2003, 03:03 PM
How hard could it possibly be to grab hold of the text window? You have the pointer to the program and from their a pointer to every object in the darn program. From there it would seem to be no different than writing an IRC bot.

Now I guess I'll have to break open VS and start taking a look at the party client. Funny though, for some reason I have a feeling that my expected value is higher playing myself than making a bot to do it.

tomcain
12-30-2003, 03:07 PM
The problem, as Stephen indicated, is that is it not a text window.

Tom

nykenny
12-30-2003, 04:05 PM
[ QUOTE ]
In particular computer programs tend to be excellent at open games and tactical calculations. They have a tougher time with longer-term evaluation and play of closed positions. I guess the latter type of wisdom is harder to program and a bit more "intuitive."

[/ QUOTE ]
isn't this precisely why the Botty couldn't beat the 5/10 game?

squiffy
12-30-2003, 05:18 PM
Well, you need to compare the EV of one human to the EV of potentially 10 or more bots playing 3 tables at multiple websites for lengthy periods of time. And bots don't need to take breaks to eat or sleep.

I guess the only problem would be if the website cares if you are using a bot and has some sort of detection software to see if you are playing incredibly long hours without a break. Not sure if they care or see this as a problem, at least at the present.

Even if the bot or bots are playing at lower limits, the fact that they can play at other websites while you are playing at Party or while you are asleep or at work, is a big plus.

Stephen Marks
12-30-2003, 06:00 PM
First, thanks for the interest.

When I first played, I looked very carefully, and stopped it if Botty was doing something daft. I also limited it to what I bought into the game for, initially very small amounts.

Since then, I do let it play on it's own without watching, but always for random game counts, like a human plays, and also limited by the buyin. I read logs later to see what it's done right and wrong.

You could take a C programming course at many local institutions. You could start there, and also look over the Wilson Texas Turbo Holdem as a programming example to write from scratch after some experience.

Play game winning is essential to winning for real money; anyone who can not crush the play games cannot win in real life.

Stephen (AKA)

Stephen Marks
12-30-2003, 06:01 PM
Mike,

I am interested. I sent you a PM here, please read it.

Stephen (AKA)

Stephen Marks
12-30-2003, 06:02 PM
Squiffy,

I haven't thought much about NL, sorry.

Stephen (AKA)

Stephen Marks
12-30-2003, 06:03 PM
OOPS,

I meant strcpy.... Apologies.

Stephen (AKA)

Stephen Marks
12-30-2003, 06:05 PM
Correct, Dr. strcpy it is. I usually cut and paste, but my browser was on a different machine when I made the post.

Stephen (AKA)

Stephen Marks
12-30-2003, 06:09 PM
I wish I could read those packets, but everyone encrypts them. I have put snoopers on lines with the traffic from some sites to see what I can garner, and nothing looks clear text. Too bad.

About me as a poker player: I am pretty good, but Botty is way better. I am too loose, I don't have the courage my program does, etc etc. (pounding the turn with underpairs for instance). Books and logs and thinking and more books helped me.

Stephen (AKA)

tpir90036
12-30-2003, 07:08 PM
[ QUOTE ]
the graphics program needs to read the graphics on the screen to determine actions. This was very very difficult to achieve.

[/ QUOTE ]
tedious? yes. difficult? no way. this part should be easier than the poker logic if you are down with the windows API and/or direct X. getting the screen coordiantes of all the places you need to read would be annoying...but certainly not difficult.

dsm
12-30-2003, 08:11 PM
"Shock of all shocks. Little botty lost online in play games. I soon figured out why. Any ideas anyone? What do you have to keep track of which TTHE doesn't (and many players either)."

Players previous actions?

-dsm

Gildersneeze
12-30-2003, 10:23 PM
I have question (if you, or anyone else knows the answer) about the "Fritz" chess engine. As far as I know, it calculates the best possible move (unless it is the white pieces, and it's the game opening move) by running through every possible outcome from that current position of the game and then selecting the most proper move.

From what my friend Matt was saying, it calculates anywhere from one to one hundred million possible outcomes, and then chooses either the move that will most likely (based on a "memory" of all the games you've played against it) counter your strategy, or the response that should always be played to your move.

I know it's beatable, though I personally haven't seen it beaten on it's highest settings, but if it can do that, I don't see how. If it always makes the correct move, considering it will first calculate its theoretical next move and then calculate all possible outcomes from that next move until it reaches a pattern that ensures victory, how can it be beaten?

Anyhow, if you're familiar with Fritz, is that how it's working? Or is it still just doing what all other chess games rely on, a large database of pre-programmed chess matches (I know it has some 850,000 matches in its database, but Matt told me that's mostly for setting up scenarios)?

mikeklein
12-31-2003, 05:50 AM
I've returned your PM.Thx

Stephen Marks
12-31-2003, 09:19 AM
Hi,

That's not it.

What my first versions did not understand was how many players were still involved. Very important.

About previous actions: Do you mean previous actions this round or previous? All versions of TTHE, and all versions of Botty from the beginning know about this round. But previous round knowledge, hm, interesting concept, I will talk about that later.

Stephen (AKA)

LetsRock
12-31-2003, 11:54 AM
If indeed this is a legitimate venture and not some fantasy thread, there's a few questions just begging to be asked:

1. How does Botty fare vs. Botty Jr.?
2. How do I get one?

While I'm hoping that this is pure fiction, I'd be somewhat impressed that someone could accomplish this. But if it is true, it will surely destroy on-line poker. Eventually, all of the people who are "just in it for the money" will have a stable of bots that go online and compete for the botless human's money.

I hope that sites will find a way to prevent bots from logging in and playing. If I wanted to play poker against computers, I'd just go buy some software and play for fun. I play poker for the competetion as much as the money. Playing against a "perfect" opponent would not be fun.

Even if your intentions are just "to see if it could be done", eventually someone will develop a commercial bot and start selling them for 19.95 to everyone on the planet, and on-line poker will turn into tables full of bots, who would then logically just be giving the house their rake since, theoretically, all the bots would be pretty equal (they'd never make a mistake) and just pass the chips back and forth.

Very sad.....

Stephen Marks
12-31-2003, 01:22 PM
I felt the same way --- Tedious, but not difficult -- when I started, and perhaps that is a better word. But it was not as easy as I thought, since it is 'real-time' too. Getting the snapshots correct is not always obvious....but if I could do this part time (in the evening after a day at the office) over a month or so, then a smarter-than-I Grad Student could do it too.

Stephen (AKA)

Stephen Marks
12-31-2003, 01:26 PM
It's not a fantasy /images/graemlins/cool.gif

Botty cannot play against Botty Jr, since the way it needs to read graphics makes it difficult.

It is only for my personal fun, so I am sorry, but you cannot get one.

Bots have a long way to go, I think.

Stephen (AKA)

CountDuckula
12-31-2003, 01:57 PM
[ QUOTE ]
I have question (if you, or anyone else knows the answer) about the "Fritz" chess engine. As far as I know, it calculates the best possible move (unless it is the white pieces, and it's the game opening move) by running through every possible outcome from that current position of the game and then selecting the most proper move.

From what my friend Matt was saying, it calculates anywhere from one to one hundred million possible outcomes, and then chooses either the move that will most likely (based on a "memory" of all the games you've played against it) counter your strategy, or the response that should always be played to your move.

I know it's beatable, though I personally haven't seen it beaten on it's highest settings, but if it can do that, I don't see how. If it always makes the correct move, considering it will first calculate its theoretical next move and then calculate all possible outcomes from that next move until it reaches a pattern that ensures victory, how can it be beaten?

Anyhow, if you're familiar with Fritz, is that how it's working? Or is it still just doing what all other chess games rely on, a large database of pre-programmed chess matches (I know it has some 850,000 matches in its database, but Matt told me that's mostly for setting up scenarios)?

[/ QUOTE ]

No, that's now how Fritz or chess programs in general work. It would be impossible for them to evaluate "every possible outcome", as you suggest; the computation time would be prohibitive. The database is not of matches, but of openings and endgames; the middlegames are too vast and variable to be covered even by a database consisting of hundreds of thousands of games. The openings are standard enough to be contained in a suitable database, and the endgames involve small enough amounts of material to lend themselves to being codified and played by rote. Middlegames are another story altogether.

IIRC, most chess programs' look-ahead horizon is in the neighborhood of 5-10 moves (where a "move" is defined as one White move and one Black move); what they actually do is use evaluation algorithms that take into account material and positional considerations, looking for tactics that win material or lead to mate. When they don't see anything clear, they content themselves with trying to maintain a solid position. They do a lot of pruning to avoid going down unfavorable lines. When a human beats a chess program, it often comes about because the human has spotted something just beyond the program's horizon; a sequence that the computer evaluated as favorable (i.e., leading to a material or positional gain somewhere) and therefore chose to enter turns out to be unfavorable, because the computer was unable to see the position that would result a couple of moves beyond what it was looking at when it made the evaluation in the first place.

You'd probably get more detailed information by looking or asking on the rec.games.chess.computers newsgroup; I do happen to be a programmer, but am not involved in writing chess software of any kind.

-Mike

bmedwar
12-31-2003, 02:41 PM
I have a commercial program at home that auto-grabs hand info from various online poker games. I don't know if it does it via graphic capturing or sniffing/decrypting the data packets. I don't think sniffing decrypting SSL should be very difficult. The purposes of encryption are to verify that the communication remains between the same two hosts and to disallow sniffing of packets unless you know the private key. But in this situation you have the private key (probably stored somewhere in the windows registry). So you should be able to sniff and decrypt. I think this is a much more simple and ressilliant method compared to capturing the graphics.

fluff
12-31-2003, 02:58 PM
Even if poker sites send the information encrypted, your client should have the key, after all it needs to be able to read what it recieves.

I always thought that the frequent updates from sites such as Poker Stars where it downloads software updates, but your client stays exactly the same is merely them updating the encryption keys.

Mash
12-31-2003, 03:21 PM
Interesting read.

I'm curious if you have thought about writing a bot for playing blackjack online. Seems like it would be an easier program to write. Not sure if it would be more +EV or not online though.

squiffy
12-31-2003, 04:42 PM
You don't necessarily need a bot. Many sites have auto play and you can adjust the program to play every situation as you would like it played. Hit on x, double down on y, stand on z, etc. That's pretty simple.

Mash
12-31-2003, 05:33 PM
Ok that makes sense. Thanks. Obviously I don't play blackjack online but that sounds easy enough without needing a bot. Can you set it up where you do get +EV, or do they shuffle up too often to make it worth it? I'm guessing they shuffle after every hand or else everyone would be playing blackjack online.

fluff
12-31-2003, 05:35 PM
All online casino's shuffle after every hand or they would bleed dry to card counters.

frizzfreeling
01-01-2004, 02:13 AM
Congratulations! You seem to be the only one posting in this thread with any common sense. This bot of his is nothing to be happy about. Many people live on income from online poker and have spent years gaining the necessary knowledge to do it.
There are, however, a few ways around his little bot program and others like it! I have heard one of the best solutions deals with streaming encrypted media with a seperate but connected "decision" bar. The computer cannot "capture" the media to see what is going on (obviously, I am not an expert on this subject, but this is how it was explained to me by someone who is). However, you, as the player, can see the media and transmit your decision to call, raise, fold, in the same manner that we do now. There are many other ideas about to combat these people. Trust me, a billion dollar business sector is going to do everything necessary to keep themselves afloat. Right now, these bots just havent hit the point where they impact the way people view internet poker. When they do, you will see some countermeasures.
As a final thought...I am not even close to being a person of high morality, but even if someone dropped this thing in my lap, I wouldnt use it. It is no better than two people at the same table on the phone with each other colluding. Not the same, but no better! Whats the matter with you people?

george w of poker
01-01-2004, 03:10 AM
it would be laughable if they stored the key in the windows registry. sniffing and decrypting is not possible.

bigpooch
01-01-2004, 06:40 PM
You need to remember that for the positions that Fritz has
at the end of a line, it must assign an evaluation (an
approximate assessment based on material, etc.) and this in
no way guarantees any correspondence with optimal play. In
fact, many of my friends and I agree that with even the very
best computer programs that play chess, they may be no match
for world class correspondence players. Chess is not a game
that is as easy to analyze except in the simplest positions.
Even then, some of the five and six piece endings in
Thompson's database are not easy to understand; for example,
Q+P vs Q. Thankfully, John Nunn has succinctly summarized
these in easily digestible form in his endgame treatises.

bigpooch
01-01-2004, 06:47 PM
But even in backgammon, the bots snowie and jellyfish are
easily obtainable (but snowie might be about $380 or so) and
play at world class level. On the other hand, easily 99% or
more of the human players (on TrueMoneyGames, anyway)
clearly don't use bots. On the other hand, TMG does have
snowie and has "bot detection software" and this may be what
will be in store in the future if any of the poker playing
bots start playing at expert level.

tpir90036
01-02-2004, 01:49 AM
good point, the snapshot timing could get a little weird. i suppose you would have to monitor the text window and find out when the status of the game has changed. very interesting stuff. a good bot is something me and my under-motivated programming buddies have been talking about for a long time. glad to see someone actually made it work.

good luck and happy new years!
-tpir

Filip
01-02-2004, 11:34 AM
Very intresting indeed!

Instead of scanning the screen to get the card values couldnt one simply append a "hook" to the exe and pull the values for the variables used to call methods like:
<font class="small">Code:</font><hr /><pre>drawPocketCards(card1, card2)
drawFlopCards(card1, card2, card3)
drawTurnCard(card4)
drawRiverCard(card5)</pre><hr />
The information must be avaliable within the program.

Another advantage with an exe hook would be that instead of using Direct-X commands to use the mousepointer to press the buttons, that i assume you do now, you could simply let the bot access the methods for the different button-actions.

This approach has its drawbacks if the client is being updated alot.....

tpir90036
01-02-2004, 05:34 PM
interesting idea.... although i have no idea how you would append hooks to party poker (or whomever's) client. a very cool idea, but how exactly would one pull something like this off?

trillig
01-06-2004, 06:50 AM
Wondering if 1000's of bots are already out there....

I wonder why at times NO ONE says ANYTHING at a table for a long long long time and talking full tables here most of the time.

nh

.... NUTTIN!

This is a pretty dirty cheat that's for sure.

But, if Diablo 2 can be wrecked by bots, and other online games, why not poker, except for the $ making aspect which really puts this into a new category almost, as bad if not worse than people selling in-game gold, items, accts, etc.

I think I'm about to pull all my online poker funds OFF-LINE.

Just my humble opinion.

and I have also thought of a way to circumvent bots, but it's mighty annoying and it itself might be bot-modable.... vicious circle...

-t

SpicyF
01-17-2004, 09:42 PM
This could be done by DLL-injection I guess? Since I'm not a programmet I really dont know how it's done tho /images/graemlins/smile.gif

- Frank