Poker Copilot and Zoom Poker: Progress Update

I’ve got the basics working. When I play Zoom Poker, Poker Copilot promptly identifies about 50% of the players correctly. The basic components are in place, but all need to be improved, tightened up, and tidied up. The biggest problem is the letter k – I’ll need to tune my code to handle this better.

 

What character is that?

My ScreenScraping Teaching tool I’m using to create the Poker Copilot Zoom Poker HUD shows an image on screen and what character it thinks that image contains. I tell the Teaching tool if the character is correct or not.

Problem is, I can’t tell whether it thinks an image is an upper case 0 or the number 0. I can’t tell if it thinks a letter is an upper case i (l) or a lower case L (l).

So I’ve created a small Java class which will give me a textual description of a character. Now it will tell me that l is either:

UPPERCASE LETTER I

or

LOWERCASE LETTER L

It will tell me that 0 is

UPPERCASE LETTER O

or

DECIMAL DIGIT NUMBER 0

The Java class is called Characters, and the source code follows:


public class Characters {

public static String getDescription(char ch) {
return CharacterType.getDescription(ch);
}

private static enum CharacterType {

UNASSIGNED,
UPPERCASE_LETTER,
LOWERCASE_LETTER,
TITLECASE_LETTER,
MODIFIER_LETTER,
OTHER_LETTER,
NON_SPACING_MARK,
ENCLOSING_MARK,
COMBINING_SPACING_MARK,
DECIMAL_DIGIT_NUMBER,
LETTER_NUMBER,
OTHER_NUMBER,
SPACE_SEPARATOR,
LINE_SEPARATOR,
PARAGRAPH_SEPARATOR,
CONTROL,
FORMAT,
NOT_USED,
PRIVATE_USE,
SURROGATE,
DASH_PUNCTUATION,
START_PUNCTUATION,
END_PUNCTUATION,
CONNECTOR_PUNCTUATION,
OTHER_PUNCTUATION,
MATH_SYMBOL,
CURRENCY_SYMBOL,
MODIFIER_SYMBOL,
OTHER_SYMBOL,
INITIAL_QUOTE_PUNCTUATION,
FINAL_QUOTE_PUNCTUATION;

private static String getDescription(final int c) {
final int type = Character.getType(c);
final CharacterType characterType = CharacterType.values()[type];
return characterType.toString().replace('_', ' ') + ' ' + (char) Character.toUpperCase(c);
}

}
}

 

Some sample usage:


System.out.println(Characters.getDescription('O'));
System.out.println(Characters.getDescription('0'));

PokerStars screen names

In order to get Poker Copilot’s HUD working with PokerStars Zoom Poker, I need to know what symbols are acceptable for PokerStars. This a valid PokerStars screen name: ÀÁÂÃÄÅÆ

Now that’s going to be hard to determine purely via naïve screen scraping. Wish me luck.

Here’s another valid name: þ o k e r Ð

That name includes two icelandic letters, and five spaces. Incidentally, Iceland abolished the letter z in 1973. Things you learn from Wikipedia…

 

 

Poker Copilot and Zoom Poker

On Sunday PokerStars released Zoom Poker. It seems to be equivalent to the late Full Tilt Poker’s Rush Poker.

I’m having a go at making a working HUD for Zoom Poker. Fortunately I went a long way down this path for an experimental Rush Poker HUD back in the day. So a lot of my necessary learning is already done, as is a semi-working solution.

Every hand in Zoom Poker is with a different set of opponents, so Poker Copilot’s approach of determining who is at the table from the hand history after a hand does’t work here. After ruling out other possible approaches, it seems clear to me that I need to use screen scraping.

To make the problem easier to solve, I’m setting some strict constraints at first: 9-player tables, using any of the “Nova” table themes, on one table, with the table made as big as PokerStars allows (1320 pixels by 932 pixels). Once I get that working satisfactorily here in the lab, I’ll make it available for eager testers, to weed out problems. Then once that is working, I can look at removing the constraints one at a time.

After two days’ work, I’ve got parts of the solution in place. In the following screenshot you can see some of the workings: in real-time, Poker Copilot is grabbing the player names in image form, then converting each image to a binary image via a technique called thresholding.

Screen Shot 2012 03 20 at 5 45 47 PM

A further process trims each binary image, then separates the image into free-standing images of individual characters as much as possible. I intend to build up up a repository of as many images as possible so that I can “teach” Poker Copilot which image is equivalent to which character (or characters).

Here’s a glimpse of the tool I created to “teach” Poker Copilot about the letters. You can see the whole player name, the individual letters, and the third column where I manually tell Poker Copilot which letter is represented.

Screen Shot 2012 03 20 at 5 58 14 PM

If any brilliant researchers into screen scraping and character recognition are reading this, please do send me links to any helpful documents in this area that I can use…

 

Poker Copilot 3.05 Now Available

Poker Copilot 3.05 is now available to download.

The major improvements are “Zoom Poker” support (although not in the HUD yet), and the addition of the “unopened preflop raise” statistic. There are some bug fixes for obscure situations – thanks to people who dutifully send crash reports because they allow me to find and fix these problems.

What’s changed:

  • PokerStars “Zoom Poker” hands now successfully imported, although the HUD doesn’t yet work with Zoom Poker.
  • New “Unopened preflop raise” statistic added. Thanks to loyal Poker Copilot customer Graham for helping me test this and locate problems.
  • Rake for Merge Network now calculated

What’s fixed:

  • Correctly recognise PokerStars GBP (pounds sterling) hands as real money instead of play money.
  • Work-around for known sporadic apple exception thrown when plugging in or unplugging external monitor. Hopefully this will not longer crash Poker Copilot.
  • Removed “Rake Paid” from “More” -> “Advanced” menu as it didn’t make sense being there, and caused a crash if used while charting.
  • Fix for problem reading GDPoker preferences. Poker Copilot was looking in the wrong place and always reporting that the preferences weren’t found.
  • Work-around to make exported Merge Network hands importable by Poker Copilot
  • Fixed crash caused by combining “last 10,000 hands” with “only players seen recently” on player summary

Update Instructions:

  1. Download the latest version here.
  2. Open the downloaded file.
  3. Drag the Poker Copilot icon to the Applications icon. If prompted to replace an existing version, confirm that you do want to replace.

Now you are done and ready to hit the tables.

Ongame and Table Size

Loyal Poker Copilot customer Fabrizio pointed out that filtering by table size doesn’t work with Ongame Network hands. This is indeed the case. My answer to Fabrizio, and all others affected by this:

Ongame Network hand history files don’t contain information about the table size. Therefore Poker Copilot can’t tell the table size, and sets all Ongame Network rooms at 10 players.

You should write to your Ongame Network software’s support email asking them to add this information to the hand history file.

Hopefully if enough people ask, they’ll do something about it.

 

 

Updated Poker Copilot User Guide

The Poker Copilot User Guide was horribly out of date. There is now a new PDF user guide, updated for Poker Copilot 3. You can download it from our support page. It is currently only available as a PDF. I’m hoping to get motivated to do the drudge work of converting it to HTML real soon now.

 

Coming in the next Update: Unopened PFR Statistic

Unopened PFR is a measure of how often you raise preflop all the players before you either checked or folded.

Screen Shot 2012 03 13 at 5 51 19 PM

I want to make this identical in calculation with Hold’em Manager. So a question for my customers who also have Windows and HEM: should the denominator be the number of hands you’ve played? Or the number of times you had an opportunity to make an unopened preflop raise? The latter seems more logical to me.

Poker Copilot 3.04 Now Available

Poker Copilot 3.04 is now available to download.

What’s changed:

  • New Diagnostics window is complete, always running even when invisible, and will subtly prompt you when your configuration needs checking.
  • Added support for GlamingPoker (Ongame Network)
  • A performance problem experienced by some multi-tablers is now replaced with a lightning fast alternative. Thanks to loyal Poker Copilot customers Jon and Alberto for helping locate and fix this.

What’s fixed:

  • Fixed up hero aggression stats for current session
  • Poker Copilot works again on Mac OS X 10.5 (Leopard)
  • Fix for errors in calculating winnings in some PokerStars tournament where the prize was both cash AND entry to another tournament
  • Fixed GDPoker support

Update Instructions:

  1. Download the latest version here.
  2. Open the downloaded file.
  3. Drag the Poker Copilot icon to the Applications icon. If prompted to replace an existing version, confirm that you do want to replace.

Now you are done and ready to hit the tables.