तीन कार्ड पोकर विश्लेषण
वीडियो में बनाया गया कोड यहां दिया गया है।
#शामिल करना#शामिल करना #शामिल करना #शामिल करना #शामिल करना एच>#शामिल करना नेमस्पेस एसटीडी का उपयोग करना; स्ट्रक्चर कार्ड { int आर; int एस; }; शून्य set_array(शून्य); int स्कोर(int p1, int p2, int p3); शून्य डीलर(int p1, int p2, int p3, int psc, int event_array[]); int स्कोर_array[22100]; कार्ड डेक[52]; शून्य मुख्य() { 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++) { tot_ante_bonus[i] = 0; जोड़ीप्लस_एरे[i] = 0; tot_event_array[i] = 0; } के लिए (i = 0; i < 51; i++) { डेक[i].r = (int)(i / 4); डेक[i].s = i % 4; } सेट_ऐरे(); के लिए (p1 = 0; p1 <= 49; p1++) { (p2 = p1 + 1; p2 <= 50; p2++) के लिए { (p3 = p2 + 1; p3 <= 51; p3++) के लिए { sc = स्कोर_अरे[इंडेक्स]; बिल्ली = (int)sc / 2197; pairplus_array[बिल्ली]++; डीलर(पी1, पी2, पी3, एससी, इवेंट_एरे); 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]++; } सूचकांक++; } } } प्रिंटफ("पेयरप्लस विश्लेषण\n"); के लिए (i = 0; i < 6; i++) प्रिंटफ("%s\t%i\n", hand_name[i].c_str(), pairplus_array[i]); printf("\nपूर्व विश्लेषण\n"); के लिए (i = 0; i <=4; i++) प्रिंटफ़("%s\t%I64i\t%f\n", event_name[i].c_str(), tot_event_array[i],(double)tot_event_array[i]/22100.0/18424.0); डबल गेम_ईवी = (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++) गेम_ईवी += पूर्व_बोनस_भुगतान[i] * tot_ante_bonus[i] / 22100.0; printf("पूर्व बोनस के साथ खेल अपेक्षित मूल्य = \t%f\n", game_ev); } शून्य डीलर(int p1, int p2, int p3, int psc, int event_array[]) { int d1, d2, d3, i,dsc; int सूचकांक = 0; के लिए (i = 0; i <= 3; i++) इवेंट_एरे[i] = 0; के लिए (d1 = 0; d1 <= 49; d1++) { (d2 = d1 + 1; d2 <= 50; d2++) के लिए { (d3 = d2 + 1; d3 <= 51; d3++) के लिए { यदि नहीं { dsc = स्कोर_एरे[इंडेक्स]; यदि (dsc < 1703) // डीलर योग्य नहीं है इवेंट_ऐरे[1]++; अन्यथा यदि (psc>dsc) इवेंट_ऐरे[0]++; अन्यथा यदि (psc < dsc) इवेंट_ऐरे[3]++; अन्य इवेंट_ऐरे[2]++; } सूचकांक++; } } } } शून्य सेट_अरे(शून्य) { 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 = स्कोर(p1, p2, p3); स्कोर_एरे[इंडेक्स] = एससी; सूचकांक++; } } } } int स्कोर(int p1, int p2, int p3) { int फ्लश, सीधा; कार्ड हाथ[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; यदि ((हाथ[0].s == हाथ[1].s) और& (हाथ[1].s == हाथ[2].s)) फ्लश = 169 * हैंड[2].r + 13 * हैंड[1].r + हैंड[0].r; अन्य फ्लश = 0; यदि ((हाथ[2].r - हाथ[1].r == 1) और& (हाथ[1].r - हाथ[0].r == 1)) सीधा = हाथ[2].r; अन्यथा यदि ((हैंड[2].r == 12) && (हैंड[1].r == 1) && (हैंड[0].r == 0)) सीधा = 1; अन्य सीधा = 0; यदि ((सीधा > 0) और (फ्लश > 0)) 2197 * 5 + सीधा लौटाएं; अन्यथा यदि (हाथ[2].r == हाथ[0].r) 2197 * 4 + हाथ[0].r लौटाएँ; अन्यथा यदि (सीधी रेखा > 0) 2197 * 3 + सीधा लौटाएं; अन्यथा यदि (फ्लश > 0) 2197 * 2 + फ्लश लौटाएँ; अन्यथा यदि (हाथ[2].r == हाथ[1].r) 2197 + 13 * हाथ[1].r + हाथ[0].r लौटाएँ; अन्यथा यदि (हाथ[0].r == हाथ[1].r) 2197 + 13 * हाथ[1].r + हाथ[2].r लौटाएँ; अन्य वापसी 169 * हाथ[2].r + 13 * हाथ[1].r + हाथ[0].r; }