int playerProbability(element_P ** arr, int** count, int * left, int* player_ace){ int player_card[2] , dealer_card; for(int i=2;i<12;i++){ int counter1 = left[i]; while(counter1){ --left[i]; if(i == 11) ++(*player_ace); player_card[0] = i; for(int j=2;j<12;j++){ int counter2 = left[j]; while(counter2){ --left[j]; dealer_card = j; for(int k=2;k<12;k++){ int counter3 = left[k]; while(counter3){ --left[k]; if(k == 11) ++(*player_ace); player_card[1] = k; int card_sum = cardSum(player_card); int actual_card_sum = player_card[0] + player_card[1]; if(checked[hash_check(i,j,k)]) ; else{ for(int cases = 0; cases<6; ++cases){ //if(cases > 0){ hit(arr[card_sum][j].player[cases], left, actual_card_sum , 1.0 , player_ace, cases); //printf("Hit(%d,%d,%d);\n",player_card[0],dealer_card,player_card[1]); //} /*else{ stand(arr[card_sum][j].player[cases] , actual_card_sum , player_ace); //printf("Stand(%d,%d,%d);\n",player_card[0],dealer_card,player_card[1]); }*/ dealerProbability( arr[card_sum][j].dealer[cases], left, dealer_card , 1.0); } ++count[card_sum][j]; checked[ ((100*j) + (i+k)) ] = true; } if(k == 11) --(*player_ace); ++left[k]; --counter3; } } ++left[j]; --counter2; } } if(i == 11) --(*player_ace); ++left[i]; --counter1; } } return 0; }
mkgraph() { if (!parse()) return(FALSE); hash_check(); hash_free(); fingraph(); return(TRUE); }