WOO logo

इस पृष्ठ पर

वीडियो पोकर कोड प्रोग्रामिंग

परिचय

वीडियो पोकर कोड प्रोग्रामिंग

यहाँ वीडियो पोकर प्रोग्रामिंग पर मेरा वीडियो है।

नीचे वीडियो में विकसित कोड दिया गया है।

#शामिल करें <iostream>
#शामिल करें <time.h>

स्ट्रक्चर कार्ड
{
int आर;
int एस;
};

शून्य सेटअप(शून्य);
शून्य सौदा(शून्य);
शून्य ड्रा (int c1, int c2, int c3, int c4, int c5);
int स्कोर(कार्ड डील[]);

int स्कोर_सरणी[2598960];
कार्ड डेक[52];
int draw_combinations_array[] = { 1533939, 178365, 178365, 16215, 178365, 16215, 16215, 1081, 178365, 16215, 16215, 1081, 16215, 1081, 1081, 1081, 47, 178365, 16215, 16215, 1081, 16215, 1081, 1081, 47, 16215, 1081, 1081, 47, 1081, 47, 47, 1 };
int weighting_array[] = { 5, 43, 43, 473, 43, 473, 473, 7095, 43, 473, 473, 7095, 473, 7095, 7095, 163185, 43, 473, 473, 7095, 473, 7095, 7095, 163185, 473, 7095, 7095, 163185, 7669695 };
__int64 tot_combinations[52];

const char* hand_name_array[] = {
"हार","जैक या बेहतर","दो जोड़ी","एक तरह के तीन","सीधे","फ्लश","फुल हाउस","एक तरह के चार","सीधे फ्लश","रॉयल फ्लश","कुल" };
int win_array[] = { 0,1,2,3,4,6,9,25,50,800 };


मुख्य प्रवेश बिंदु()
{
time_t आरंभ समय, अंत समय;
begtime = समय(NULL);
स्थापित करना();
सौदा();
अंत समय = समय(शून्य);
प्रिंटफ("कुल सेकंड=\t%i\n", (int)अंत समय - (int)प्रारंभ समय);
}

शून्य सेटअप(शून्य)
{
int i, c1, c2, c3, c4, c5, गिनती, स्कोर_डील_एरे[52], sc;
कार्ड डील[5];
के लिए (i = 0; i <= 51; i++)
{
डेक[i].r = (int)(i / 4);
डेक[i].एस = आई % 4;
स्कोर_डील_एरे[i] = 0;
tot_combinations[i] = 0;
}
गिनती = 0;
के लिए (c1 = 0; c1 <= 47;c1++)
{
डील[0] = डेक[c1];
(c2 = c1 + 1; c2 <= 48; c2++) के लिए
{
डील[1] = डेक[c2];
(c3 = c2 + 1; c3 <= 49; c3++) के लिए
{
डील[2] = डेक[सी3];
(c4 = c3 + 1; c4 <= 50; c4++) के लिए
{
डील[3] = डेक[सी4];
(c5 = c4 + 1; c5 <= 51; c5++) के लिए
{
डील[4] = डेक[सी5];
sc = स्कोर(डील);
स्कोर_एरे[गिनती] = एससी;
स्कोर_डील_एरे[एससी]++;
गिनती++;
}
}
}
}
}
std::cerr << "गिनती =\t" << गिनती << "\n";
के लिए (i = 0; i <= 9; i++)
std::cerr << hand_name_array[i] << "\t" << score_deal_array[i] << "\n";
}


शून्य सौदा(शून्य)
{
int i, c1, c2, c3, c4, c5;
int गिनती = 0;
के लिए (c1 = 0; c1 <= 47;c1++)
{
(c2 = c1 + 1; c2 <= 48; c2++) के लिए
{
(c3 = c2 + 1; c3 <= 49; c3++) के लिए
{
(c4 = c3 + 1; c4 <= 50; c4++) के लिए
{
(c5 = c4 + 1; c5 <= 51; c5++) के लिए
{
ड्रा(सी1,सी2,सी3,सी4,सी5);
गिनती++;
यदि ((गिनती % 1000)==0)
std::cerr << गिनती << "\n";
}
}
}
}
}
(i=9; i>=0; i--) के लिए
प्रिंटफ("%s\t%i\t%I64i\n", hand_name_array[i], win_array[i], tot_combinations[i]);
}

शून्य ड्रा (int c1, int c2, int c3, int c4, int c5)
{
int i,j, d1, d2, d3, d4, d5, इंडेक्स, sc, draw_score_array[32][10];
int गिनती = 0;
के लिए (i = 0; i <= 31; i++)
{
के लिए (j = 0; j <= 9; j++)
ड्रा_स्कोर_एरे[i][j] = 0;
}
के लिए (d1 = 0; d1 <= 47; d1++)
{
(d2 = d1 + 1; d2 <= 48; d2++) के लिए
{
(d3 = d2 + 1; d3 <= 49; d3++) के लिए
{
(d4 = d3 + 1; d4 <= 50; d4++) के लिए
{
(d5 = d4 + 1; d5 <= 51; d5++) के लिए
{
sc = स्कोर_अरे[गिनती];
सूचकांक = 0;
यदि ((d1 == c1) || (d2 == c1) || (d3 == c1) || (d4 == c1) || (d5 == c1))
सूचकांक += 16;
यदि ((d1 == c2) || (d2 == c2) || (d3 == c2) || (d4 == c2) || (d5 == c2))
सूचकांक += 8;
यदि ((d1 == c3) || (d2 == c3) || (d3 == c3) || (d4 == c3) || (d5 == c3))
सूचकांक += 4;
यदि ((d1 == c4) || (d2 == c4) || (d3 == c4) || (d4 == c4) || (d5 == c4))
सूचकांक += 2;
यदि ((d1 == c5) || (d2 == c5) || (d3 == c5) || (d4 == c5) || (d5 == c5))
सूचकांक += 1;
draw_score_array[index][sc]++;
गिनती++;
}
}
}
}
}
डबल ईवी;
डबल max_ev = 0;
int best_play = 0;
के लिए (i = 0; i <= 31; i++)
{
ईवी = 0.0;
के लिए (j = 0; j <= 9; j++)
ev += draw_score_array[i][j] * win_array[j];
ev /= draw_combinations_array[i];
यदि (ev > max_ev)
{
अधिकतम_ev = ev;
सर्वश्रेष्ठ_प्ले = i;
}
}
के लिए (j = 0; j <= 9; j++)
{
tot_combinations[j] += draw_score_array[best_play][j]* weighting_array[best_play];
}
}

int स्कोर(कार्ड डील[])
{
int सीधा, फ्लश;
यदि ((डील[0].s == डील[1].s) && (डील[0].s == डील[2].s) && (डील[0].s == डील[3].s) && (डील[0].s == डील[4].s))
फ्लश = 1;
अन्य
फ्लश = 0;
यदि ((डील[0].r != डील[1].r) && (डील[1].r != डील[2].r) && (डील[2].r != डील[3].r) && (डील[3].r != डील[4].r))
{
यदि ((डील[0].r + 4) == डील[4].r)
सीधा = 1;
अन्यथा यदि ((डील[4].r == 12) और (डील[3].r == 3)) // पहिया
सीधा = 1;
अन्य
सीधा = 0;
}
अन्य
सीधा = 0;
यदि ((सीधा == 1) और (फ्लश == 1))
{
यदि (डील[0].r == 8)
वापसी 9;
अन्य
वापसी 8;
}
अन्यथा यदि (फ्लश == 1)
5 लौटाएं;
अन्यथा यदि (सीधा == 1)
वापसी 4;
अन्यथा यदि ((डील[0].r == डील[3].r) || (डील[1].r == डील[4].r))
वापसी 7;
अन्यथा यदि ((डील[0].r == डील[2].r) और (डील[3].r == डील[4].r))
वापसी 6;
अन्यथा यदि ((डील[0].r == डील[1].r) और (डील[2].r == डील[4].r))
वापसी 6;
अन्यथा यदि ((डील[0].r == डील[2].r) || (डील[1].r == डील[3].r) || (डील[2].r == डील[4].r))
वापसी 3;
अन्यथा यदि ((डील[0].r == डील[1].r) और (डील[2].r == डील[3].r))
वापसी 2;
अन्यथा यदि ((डील[0].r == डील[1].r) और (डील[3].r == डील[4].r))
वापसी 2;
अन्यथा यदि ((डील[1].r == डील[2].r) और (डील[3].r == डील[4].r))
वापसी 2;
अन्यथा यदि ((डील[0].r == डील[1].r) और (डील[0].r >= 9))
वापसी 1;
अन्यथा यदि ((डील[1].r == डील[2].r) और (डील[1].r >= 9))
वापसी 1;
अन्यथा यदि ((डील[2].r == डील[3].r) और (डील[2].r >= 9))
वापसी 1;
अन्यथा यदि ((डील[3].r == डील[4].r) और (डील[3].r >= 9))
वापसी 1;
अन्य
0 लौटाएँ;
}

लिंक

वीडियो पोकर विश्लेषण के लिए मेरी पद्धति .