126 posts / 0 new
Last post
alexrjl's picture
Installation problem

I seem to be failing at literally the first hurdle with this: When I try to import pokereval, I get the follow error

ImportError Traceback (most recent call last)
<ipython-input-1-ba86388f21dc> in <module>()
----> 1 import pokereval

C:\Users\alex.Owner-PC\Anaconda\lib\site-packages\pokereval\__init__.py in <module>()
28 import sys
29 #_pokereval = __import__('_pokereval_' + sys.version[0] + '_' + sys.version[2])
---> 30 import _pokereval_2_7 as _pokereval
32 from types import *

ImportError: DLL load failed: %1 is not a valid Win32 application.

I've tried reinstalling pokereval to no avail. Anyone have an idea what's going on?

yaqh's picture
Hm, I suspect this means that

Hm, I suspect this means that you have 64 bit python installed but a 32bit version of the pokereval library.. Could you post the versions of the various things you installed during the setup video?

IamIndifferent's picture
PioSolver vs Tipton's Vidpack

I have PioSolver and am quite happy with it for postflop study.

My question is: what benefit would I gain from buying Tipton Video pack?

I have extensive background in programming so that is not an issue.

I'm looking to analyse pre-flop ranges for both HUSNG and 6max 3B and 6max single raised pots especially cold calling ranges by position. ATM, I can't do this in Piosolver as far as I'm aware. Can I figure out how to do this with Tipton Vid Pack (automating analysis over 1755 strategically different flops)?

yaqh's picture
Hey, I'm not really sure what

Hey, I'm not really sure what kind of analysis you have in mind, but certainly anything you can do for one flop will be easy to do for all of them.. it's just a for loop. I'd recommend checking out the free intro videos for more specifics as far as what we build over the course of the series. 


IamIndifferent's picture

I would like to validate the analysis in your book Vol 2, Section 15.2, p335+ pseudo-equilibriums for pre-flop for various short stacks but using 1755 flops (versus I think you used 135 flops).

If i can get "close" to your HUSNG results, I'd then like to take the same approach to 6max 3B pots (smaller SPR to limit treesize) for certain HU simplified combinations such as BB 3B vs SB raise. 

Am I being overly ambitious here or is this a practical thing to try to achieve on my 2.4Ghz 8Gb +SSD laptop? (I don't mind if the analyses take several weeks to complete). How do I estimate how long this might take to run?

(I've watched all the intro vids multiple times to try to make sure I've grasped the scope of the vid pack).

Lunastar's picture
whats my mistake?

in the hand vs hand eq calculations  our return is (numWins + numTies / 2.0) / numRunouts

in our example we hav numWIns = 41 numties =0 and numrunouts = 44

when i use this and calculate (41+0 /2.0) / 44 i get 0.9318... instead of 0.136...

Whats my mistake ? My program shove me 0.136  so i code right. But i just wanna test it on myown and so where is my mistake in thinking?

ANother questions, do u have a link for the whole pokereval stuff for c++`?



SerialChiller's picture
Problem with plot out the hand table

Hi folks,

I  have problems with making the table: 

Only the AA cells shows up

I tried to print out 'results', it seems like it is good:

<svg><rect x="0" y="0" width="20" height="20" fill="#ffffff"></rect><text x=0 y=20 font-size=12 >AA</text></svg>

<svg><rect x="0" y="0" width="20" height="20" fill="#ffffff"></rect><text x=0 y=20 font-size=12 >
AA</text></svg><rect x="0" y="20" width="20" height="20" fill="#ffffff"></rect><text x=0 y=40 font-size=12 >AK</text></svg>
<svg><rect x="0" y="0" width="20" height="20" fill="#ffffff"></rect><text x=0 y=20 font-size=12 >AA</text></svg><rect x="0" y="20"
 width="20" height="20" fill="#ffffff"></rect><text x=0 y=40 font-size=12 >AK</text></svg><rect x="0" y="40" width="20" height="20"
fill="#ffffff"></rect><text x=0 y=60 font-size=12 >AQ</text></svg>



What am I doing wrong?


yaqh's picture
Looks like you're

Looks like you're adding 


too soon. You're appending it inside the inner loop, whereas it should just go once, at the very end. Remember that the amount of indentation is what determines what is in which loop.


SerialChiller's picture

Hello again :),

I almost finished the video series, but I have some problems when doing the ficticious play. When calling the dofp function it seems it doesn't return anything. I tried to comment out some lines, and it starts to print out numbers from 1 to 100. It seems like if it has some problems with the setMaxExplEVs function. It runs only if the hero is "BB". 

What could be the bug here?




After some debugging I managed to run the function. But I got an error message and it prints out only 100% and 0% ranges. Where could be the problem?


ps: I really enjoyed writing the code so far.


yaqh's picture
Hi SerialChiller, it's hard

Hi SerialChiller, it's hard to tell what's going wrong from the info you've given, but it seems like it could be a lot of things.

Did you see the debugging tips I wrote here? http://www.husng.com/content/will-tipton-hunl-video-pack-2-0?page=1#comment-41976

I'd recommend giving that a shot. As I mention there, practice debugging is an important part of learning to program, and if you don't figure it out, it'll produce some good info you can post here to point us towards the problem.


Ardor's picture
Hi everybody,It occurs me a

Hi everybody,

It occurs me a strange string with the AhKdQs2d spot (end of the video 15).

First, when I run all the cells of the program, the code seems (apparently) to be right because  iPython returns zero error message. I have debugged all I could (I am a newbie regarding Python)  following the videos and the debugging in this thread step by step.

So ,after running 300 iterations for the AhKdQs2d spot, I have an ultimate (and big) issue when I want to display the ranges at each nodes:

- BB checks 0% of his starting range (the top to 65%) at the turn, and consequently after checking he can't bet  the river1 nor the river2 (left side of the tree). Unfortunatly, despite of this fact, SB fold a part of this range at the nodes 13 and 9 !!! (so after the parent nodes 8 and 12 where BB could bet at the river if he had some turn checking range at this point).

- As BB checks 0% at the turn, he bets 100% of his starting range (the top to 65%). The more strange here is that at this side of the tree (right side, nodes 15 until 29), all BB and SB ranges split correctly !!!

So I don't understand what could happen here. Someone have an idea ?

I post some image links to help the process:

My tree:


The BB and SB starting ranges:


The solution for the nodes 1 and 2:


For the node 15 (when BB bet 100% of this starting range and then the BB and SB ranges split correctly for each children of this parent):


And for the nodes 8 and 9 (when SB fold after BB bet 0% !!!):


For advance, thank you and sorry for my english, it's not my native language !! Sure you guess it ^^

UPDATE : my bad, I had set for the first turn 6s instead of 6d...


BEafterRB's picture
getStartingRangeOf() takes exactly 1 argument (2 given)

Hello, I am having trouble debugging the following:



I have spent a while now going over the code, 2p2, and this thread to see if others had similar problems and it doesn't seem so. I'm not sure exactly why it is saying I'm giving 2 arguments to getStartingRangeOf()


Thanks so much for the help and for this very cool product!


yaqh's picture
Hey,You've written


You've written 'self.getStartingRangeOf(player)' and it tells you 'getStartingRangeOf() takes exactly 1 argument (2 given)'.

The two arguments it's referring to are self and player. When you call getStartingRangeOf like this, self is implicitly passed in as the first argument, even though it doesn't show up in the argument list when you call the method. It should be explicitly included when you define the method, though, e.g.:

class StrategyPair:


def getStartingRangeOf(self, player):

So I'd guess that maybe you've forgotten one of the arguments when you defined the method.


BEafterRB's picture

Thank you very much!

BEafterRB's picture

I am so close to wrapping up this series, but am having a problem with my strategies it seems. When I do soln.dump() as in video 14, here are the results that I get:


I have checked the codes and looked for mistakes or differences and don't know where to go from here without further complicating my situation. Help!

Thanks in advance.

outfit's picture

Will Python 2.7 version using the 64-bit installer be compatible with this video series today? What is the latest version of Python I can use today? Thanks


outfit's picture
I figured it out. I can't

I figured it out. I can't wait to start.

bill.carson's picture
I ordered these videos awhile

I ordered these videos awhile back ( could be a year or more ago ) ... is there away I can download them again ? I don't have them on my hard-drives anymore .

Honestly , I wasn't able to achieve much success with it but would like to try again . One thing I didn't understand is how to make the program converge to a solution and how to find the optimum number of iterations . Is there a way ? Last time I tried , I found that the more iterations I put , the solution doesn't seem to converge but the ranges just keep getting tighter and tighter . How am I supposed to tell when it is done ?




yaqh's picture
Hi Bill, There isn't really

Hi Bill,

There isn't really an optimum number of iterations. Instead, the solutions should get closer and closer to the right answer, and you can stop once they're "close enough", which you generally decide because they're not changing much anymore. So, that's the first way you'll usually decide you're more or less done: the strategies aren't changing much anymore.

You can also look at the EVs of the maximally exploitative strategies you get in each iteration. At the equilibrium, where both players are playing maximally exploitatively at the same time, the two players' maximally exploitative EVs will just add up to the total number of chips in play. But away from an equilibrium, both players will be able to find an edge when you compute their max.expl. EVs, so the sum will be greater than the amount of chips in play. So you can also watch that sum as your program runs -- once it gets "pretty close" to the total number of chips in play, you're done.

All this said, what you see here -- ranges just getting tighter and tighter and disappearing -- probably indicates you have a bug and are just getting incorrect answers...

Hope this helps,


etphonehome's picture
"Can't find codec"

Hi, I installed LAV Filters via the installer, but when I open the Solving Poker executable, it still says it can't find the codec to play the file. I tried adding the LAV Filters x86 and x64 directories to Path, but that didn't solve it. I also tried the latest version of LAV Filters, 0.7, but still no luck. What step am I missing? (I'm running Windows 7 x64.)

RyPac13's picture
Hi there, please email me

Hi there, please email me membership@husng.com and I'll give you some extra instructions. Include any error messages that you might be receiving. Thanks.

luizarruda's picture
new notebook jupyter



Just bought the pack a little late hehe. I installed the anaconda and turnout that the notebook now they use is called jupyter. Do you think that is there going to be any problem with this notebook? I took the first 3 videos already and seems to be running same.

yaqh's picture
Hey, yea Jupyter is more or

Hey, yea Jupyter is more or less just a renaming if iPython. I wouldn't expect any issues.


TheEnd's picture
video pack 2

hi sorry to bother but is the video pack 2 serie still available ?

the activity related to this here or on pokerstars seem a bit dead o0 ...?


furthermore, is this video package if still avaliable, does it act like a solver ?


and lastly, is this can be applyed for limit poker on flop and turn ?

thx very much if help comes .

RyPac13's picture
Hey, it's still for sale yes,

Hey, it's still for sale yes, It's for teaching you how to program your own no limit holdem solver. 

What type of limit games do you play?