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;
}
Esempio n. 2
0
mkgraph()
	{
	if (!parse())
		return(FALSE);
	hash_check();
	hash_free();
	fingraph();
	return(TRUE);
	}