Baccarat Analysis
Here is my full page on baccarat.
Here is the code created in the video.
#include#include #include #include #include #include using namespace std; void main(void) { int p1, p2, p3, b1, b2, b3, ptot, btot, i, deck_array[10]; deck_array[0] = 8 * 16; for (i=1; i<=9; i++) deck_array[i] = 8 * 4; __int64 combin, player_win, banker_win, tie_win; combin = 1; player_win = 0; banker_win = 0; tie_win = 0; for (p1 = 0; p1 <= 9; p1++) { combin *= deck_array[p1]; deck_array[p1]--; for (p2 = 0; p2 <= 9; p2++) { combin *= deck_array[p2]; deck_array[p2]--; for (p3 = 0; p3 <= 9; p3++) { combin *= deck_array[p3]; deck_array[p3]--; for (b1 = 0; b1 <= 9; b1++) { combin *= deck_array[b1]; deck_array[b1]--; for (b2 = 0; b2 <= 9; b2++) { combin *= deck_array[b2]; deck_array[b2]--; for (b3 = 0; b3 <= 9; b3++) { combin *= deck_array[b3]; ptot = (p1 + p2) % 10; btot = (b1 + b2) % 10; if ((ptot < 8) && (btot < 8)) { if (ptot <= 5) { ptot = (p1 + p2 + p3) % 10; if ((btot<=2)||((btot==3)&&(p3!=8)) || ((btot == 4) && (p3 >=2) && (p3<=7)) || ((btot == 5) && (p3 >= 4) && (p3 <= 7)) || ((btot == 6) && (p3 >= 6) && (p3 <= 7))) btot = (b1 + b2 + b3) % 10; } else { if (btot <= 5) btot = (b1 + b2 + b3) % 10; } } if (ptot > btot) player_win += combin; else if (ptot < btot) banker_win += combin; else tie_win += combin; combin /= deck_array[b3]; } deck_array[b2]++; combin /= deck_array[b2]; } deck_array[b1]++; combin /= deck_array[b1]; } deck_array[p3]++; combin /= deck_array[p3]; } deck_array[p2]++; combin /= deck_array[p2]; } deck_array[p1]++; combin /= deck_array[p1]; } printf("Player wins=\t%I64i\n", player_win); printf("Banker wins=\t%I64i\n", banker_win); printf("Tie wins=\t%I64i\n", tie_win); __int64 tot_combin = player_win + banker_win + tie_win; double player_prob = (double)player_win / (double)tot_combin; double banker_prob = (double)banker_win / (double)tot_combin; double tie_prob = (double)tie_win / (double)tot_combin; printf("Player wins=\t%f\n", player_prob); printf("Banker wins=\t%f\n", banker_prob); printf("Tie wins=\t%f\n", tie_prob); double player_ev = player_prob - banker_prob; double banker_ev = 0.95 * banker_prob - player_prob; double tie_ev = 8 * tie_prob - player_prob - banker_prob; printf("Player EV=\t%f\n", player_ev); printf("Banker EV=\t%f\n", banker_ev); printf("Tie EV=\t%f\n", tie_ev); }