Poker o'yinlarini simulyatsiya qilish uchun qo'ng'iroq qiling, ko'taring yoki katlayın - Python

Ushbu nutqda biz poker qo'llarini tartiblash muammosini hal qilishdan boshlaymiz va keyin poker o'yinlarini simulyatsiya qilish uchun uni quramiz. Oxir-oqibat, biz juda ko'p sonli o'yinlarni simulyatsiya qilishni ko'rib chiqamiz va simulyatsiya natijalariga qarab, ishlab chiqilishi mumkin bo'lgan qiziqarli strategiyalar mavjudligini yoki shunchaki tasodifiy ekanligini bilib olamiz. Faqatgina Python standart kutubxonasidanfoydalanadigan va tashqi bog'liqliklarsiz foydalaniladigan bunday echimlarni ko'rib chiqamiz .

Tavsif

Poker - bu qimor, strategiya va mahoratni birlashtirgan karta o'yinlari oilasi. Barcha poker variantlari o'yinning o'ziga xos qismi sifatida garovni o'z ichiga oladi va har bir qo'lning g'olibini o'yinchilarning kartalari kombinatsiyasi bo'yicha aniqlaydi, ularning kamida bir qismi qo'lning oxirigacha yashirin qoladi. Poker o'yinlari tarqatilgan kartalar soni, umumiy yoki "jamoatchilik" kartalari, yashirin qolgan kartalar soni va garov tikish tartib-qoidalari bilan farq qiladi.

Shunday qilib, poker ko'plab tasodifiy simulyatsiyalarni qanday ishlatishni tushunish uchun juda nomzoddir.

Maqsadli auditoriya

Poker va Python o'yinlariga qiziquvchilar - Pythonda muammoni hal qilishning qiziqarli qismi uchun.

Ushbu nutq Python uchun yangi bo'lgan Python dasturchilariga standart kutubxonadan ba'zi xususiyatlardan foydalanish uchun yaxshi kirish bo'lishi kerak. Bundan tajribali Python dasturchilari uchun ham biron bir narsa bo'lishi mumkin.

Haqiqiy dunyoviy stsenariylarni qanday taqlid qilishni tushunishni istagan odamlar, shuningdek, nutqni foydali deb hisoblashlari mumkin.

Muloqot rejasi

Nutq quyidagi asosiy mavzularni qamrab oladi. Nutqning aksariyati kod orqali o'tadi.

Poker qo'llari va ularning qanday joylashtirilganligi haqida umumiy ma'lumot. Ushbu bo'lim Python-ning o'rnatilgan to'plami kabi kuchini namoyish qilishi kerak, bu Poker Norvigning echimidan ilhom olib, Poker qo'llarini reytinglash muammosini juda ixcham qiladi. (taxminan 10-15 daqiqa).

Keyin biz Poker O'yinining qanday ko'rinishini ko'rib chiqamiz va uni modellashtiramiz. Bu erda biz "n" o'yinchilari va poker o'yinlarining turli bosqichlari bilan Poker stolini modellashtiramiz. Bu Python standart kutubxonasidagi modullarni tasodifiy, itertools va to'plamlardan namoyish etadi. (taxminan: 5-7 daqiqa)

Va nihoyat, biz Poker o'yinlarini simulyatsiya qilish orqali savollarga qanday javob berishimiz mumkinligini ko'rib chiqamiz. Ro'yxatni tushunish va boshqalar (taxminan: 5-7 min)

Old shartlar:

Garchi ushbu aniq nutq uchun zarur shartlar mavjud bo'lmasa ham. Poker o'yiniga qiziqish va o'yin haqidagi ba'zi g'oyalar albatta yordam beradi.

Quyidagi havolalar buni tushunishga yordam beradi -

Tarkibning URL manzillari:

Quyida kod uchun havolalar va taqdimot uchun slaydlar mavjud.

Asosiy ish kodi (WIP)

Karnay haqida ma'lumot:

Men hyphenOs Software Labs deb nomlangan dasturiy ta'minot bo'yicha konsalting kompaniyasini boshqaraman.

10 yildan ortiq vaqtdan beri Python-da dasturlash bilan shug'ullanmoqdaman. Professional ravishda, Python-dan Desktop dasturlarini, veb-dasturlarni ishlab chiqish va Python yordamida HPC klaster orkestrini qaytarish uchun foydalangan (bu Openstackdan ancha oldin).

Mening shaxsiy loyihalarim uchun asosan Python-dan foydalaning. Men har doim Python-ning standart kutubxonasi va ichki o'rnatilgan narsalar yordamida muammolarni hal qilishni ko'rib chiqayapman, ishonamanki, bu etarli darajada qadrlanmagan narsa. Qisman, chunki juda ko'p sonli muammolarni hal qilish uchun Python paketlarining ajoyib ekotizimi.