WOO logo

تحليل لعبة البوكر بثلاث بطاقات

هذا هو الكود الذي تم إنشاؤه في الفيديو.

#يشمل
#يشمل
#يشمل
#يشمل
#يشمل
#يشمل
استخدام مساحة الاسم std؛

بطاقة هيكلية {
	int r؛
	int s;
};

مجموعة void_array(void);
int النتيجة(int p1، int p2، int p3)؛
void dealer(int p1, int p2, int p3, int psc, int event_array[]);

int score_array[22100];
مجموعة البطاقات[52]؛

void main()
{
	int i، p1، p2، p3، sc، cat، pairplus_array[6]، event_array[4]، tot_ante_bonus[6]؛
	int ante_bonus_pay[] = { 0,0,0,1,4,5 };
	__int64 tot_event_array[6];
	سلسلة hand_name[] = { "ثلاثة مفردة","زوج","متساو","مستقيم","ثلاثة من نفس النوع","متساو" };
	سلسلة event_name[] = { "فوز اللاعب","الموزع غير مؤهل","تعادل","فوز الموزع","انسحاب اللاعب" };
	مؤشر int = 0؛
	ضعف القيمة = 0؛
	لـ (i = 0؛ i < 6؛ i++)
	{
		إجمالي المكافأة السابقة[i] = 0؛
		زوج زائد_مصفوفة[i] = 0؛
		tot_event_array[i] = 0؛
	}
	لـ (i = 0؛ i < 51؛ i++)
	{
		مجموعة الأوراق[i].r = (int)(i / 4)؛
		deck[i].s = i % 4؛
	}
	مجموعة_المصفوفة();
	لـ (p1 = 0؛ p1 <= 49؛ p1++)
	{
		لـ (p2 = p1 + 1؛ p2 <= 50؛ p2++)
		{
			لـ (p3 = p2 + 1؛ p3 <= 51؛ p3++)
			{
				sc = score_array[الفهرس]؛
				القط = (int)sc / 2197؛
				زوج زائد_مصفوفة[قط]++؛
				التاجر(p1، p2، p3، sc، مجموعة الأحداث)؛
				ev = (2.0 * (مزدوج)event_array[0] + (مزدوج)event_array[1] - 2.0 * (مزدوج)event_array[3]) / 18424.0؛
				ev += ante_bonus_pay[cat];
				إذا (ev < -1) // طي
				{
					tot_event_array[4] += 18424؛
				}
				آخر
				{
					لـ (i = 0؛ i <= 3؛ i++)
						tot_event_array[i] += event_array[i];
					tot_ante_bonus[cat]++;
				}
				الفهرس++؛
			}
		}
	}
	printf("تحليل الزوج زائد\n");
	لـ (i = 0؛ i < 6؛ i++)
		printf("%s\t%i\n", اسم اليد[i].c_str(), pairplus_array[i]);
	printf("\nتحليل مسبق\n");
	لـ (i = 0؛ i <= 4؛ i++)
		printf("%s\t%I64i\t%f\n", event_name[i].c_str(), tot_event_array[i],(double)tot_event_array[i]/22100.0/18424.0);
	لعبة مزدوجة_ev = (2.0 * (مزدوج)tot_event_array[0] + (مزدوج)tot_event_array[1] - 2.0 * (مزدوج)tot_event_array[3] - (مزدوج)tot_event_array[4]) / 22100.0 / 18424.0؛
	printf("قيمة اللعبة المتوقعة بدون مكافأة الرهان المسبق =\t%f\n",game_ev);
	لـ (i = 0؛ i <= 5؛ i++)
		game_ev += ante_bonus_pay[i] * tot_ante_bonus[i] / 22100.0;
	printf("قيمة اللعبة المتوقعة مع مكافأة الرهان المسبق =\t%f\n", game_ev);

}

void dealer(int p1, int p2, int p3, int psc, int event_array[])
{
	int d1، d2، d3، i،dsc؛
	مؤشر int = 0؛
	لـ (i = 0؛ i <= 3؛ i++)
		event_array[i] = 0؛
	لـ (d1 = 0؛ d1 <= 49؛ d1++)
	{
		لـ (d2 = d1 + 1؛ d2 <= 50؛ d2++)
		{
			لـ (d3 = d2 + 1؛ d3 <= 51؛ d3++)
			{
				إذا ((d1 != p1) && (d1 != p2) && (d1 != p3) && (d2 != p1) && (d2 != p2) && (d2 != p3) && (d3 != p1) && (d3 != p2) && (d3 != p3))
				{
					dsc = score_array[الفهرس]؛
					إذا (dsc < 1703) // التاجر غير مؤهل
						مصفوفة الأحداث[1]++;
					وإلا إذا (psc>dsc)
						مصفوفة الأحداث[0]++;
					وإلا إذا (psc < dsc)
						مصفوفة الأحداث[3]++;
					آخر
						مصفوفة الأحداث[2]++;
				}
				الفهرس++؛
			}
		}
	}

}

مجموعة void_array(void)
{
	int p1، p2، p3،sc؛
	مؤشر int = 0؛
	لـ (p1 = 0؛ p1 <= 49؛ p1++)
	{
		لـ (p2 = p1 + 1؛ p2 <= 50؛ p2++)
		{
			لـ (p3 = p2 + 1؛ p3 <= 51؛ p3++)
			{
				sc = النتيجة (ص1، ص2، ص3)؛
				النتيجة_المصفوفة[الفهرس] = sc؛
				الفهرس++؛
			}
		}
	}
}

int score(int p1, int p2, int p3)
{
	int flush, straight;
	يد البطاقة[3]؛
	اليد[0].r = (int)(p1 / 4)؛
	اليد[1].r = (int)(p2 / 4)؛
	اليد[2].r = (int)(p3 / 4)؛
	اليد[0].s = p1 % 4؛
	اليد[1].s = p2 % 4؛
	اليد[2].s = p3 % 4؛
	إذا ((hand[0].s == hand[1].s) && (hand[1].s == hand[2].s))
		التدفق = 169 * اليد [2].r + 13 * اليد [1].r + اليد [0].r؛
	آخر
		تدفق = 0؛
	إذا ((hand[2].r - hand[1].r == 1) && (hand[1].r - hand[0].r == 1))
		مستقيم = اليد[2].r؛
	وإلا إذا ((hand[2].r == 12) && (hand[1].r == 1) && (hand[0].r == 0))
		مستقيم = 1؛
	آخر
		مستقيم = 0؛
	إذا ((مستقيم > 0) و(مسح > 0))
		العودة 2197 * 5 + مستقيم؛
	وإلا إذا (hand[2].r == hand[0].r)
		العودة 2197 * 4 + hand[0].r؛
	وإلا إذا (مستقيم > 0)
		العودة 2197 * 3 + مستقيم؛
	وإلا إذا (المسح > 0)
		العودة 2197 * 2 + التنظيف؛
	وإلا إذا (hand[2].r == hand[1].r)
		العودة 2197 + 13 * hand[1].r + hand[0].r؛
	وإلا إذا (hand[0].r == hand[1].r)
		العودة 2197 + 13 * hand[1].r + hand[2].r؛
	آخر
		العودة 169 * hand[2].r + 13 * hand[1].r + hand[0].r؛	
}
ح>