I have implemented the grouping of cards.
I have a problem with combining the isomorphisms with the O(n) fast ShowdownNode evaluator.
It all seems to work with the O(n²) evaluator, and it works with the O(n) evaluator, when the cards dont block each other,
but in the case, that there is cardremoval, I have a problem in that line:
Code:
double[] wincr = new double[52];
for (int i = 0; i < p.length; i++)
{
while(j < op.length && oHoles.get(j).getRank() < pHoles.get(i).getRank()){
winsum += op[j];
wincr[oHoles.get(j).getCard1()-1] += op[j];
wincr[oHoles.get(j).getCard2()-1] += op[j];
j++;
}
//etc
The wincr basically keeps track of how often a certain card gets blocked. I dont see, how I can do that, without itterating over all cards in the bucket, which would bring me back to O(n2).