Share this

Wizard Recommends

  • 300% + 40 Free Spins Play
  • $11000 Welcome Bonus Play
  • $3000 Welcome Bonus Play
Last Updated: June 15, 2021

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);
}