Texas Hold'em — ABŞ-ın Texas ştatında yaranmış standart poker oyunlarından biridir. Bu oyun kartdan ibarət standart bir dəstə ilə oynanılır. növ (pik, ürək, kərpic və xaç) üzrə kart hər birində (, , , və -dan -yə qədər), jokersiz.
Oyun aşağıdakı kimi keçirilir.
Əvvəlcə hər bir oyunçuya iki kart üzüaşağı verilir. Bunlar qapalı və ya cib kartları adlanır və tam açıqlanana qədər açıla bilməzlər. Sonra diler üç kartı üzüyuxarı qoyur — ümumi kartlar, yəni bütün oyunçular üçün ortaq olan kartlar. Bu üç kart "flop" adlanır. Flopdan sonra gələn ümumi karta "turn", beşinciyə isə "river" deyilir.
Riverdən sonra oyun kartların açılmasına keçir. Bütün oyunçular öz kartlarını açırlar. Hər bir oyunçu yeddi kartdan beşini seçir, yəni onların iki cib kartı və beş ümumi kartı əlini formalaşdırır. Ən güclü əl sahibi olan oyunçu oyunu qazanır. Aşağıda güclüdən zəifə doğru on mümkün əl növü verilmişdir:
Royal straight flush: , , , və eyni növdə. Bu, straight flush-un xüsusi halıdır.
Straight flush: Beş ardıcıl kart (məsələn, , , , , ) eyni növdə.
Four of a kind: Dörd eyni rütbəli kart.
Full house: Üç eyni rütbəli kart və başqa bir cüt kart.
Flush: Beş eyni növdə kart, amma ardıcıl deyil.
Straight: Beş ardıcıl kart, lakin eyni növdə deyil.
Three of a kind: Üç eyni rütbəli kart.
Two pairs: Eyni rütbəli iki kart və başqa rütbəli iki kart.
One pair: İki kart eyni rütbədə (bir cüt).
High card: Hər hansı digər əl.
Kartlar , və ardıcıllıqla , , kimi başa düşülür. rütbə üzrə -dan sonra və -dən əvvəl gəlir; beləliklə həm ----, həm də ---- ardıcıllıqları mümkündür (lakin ---- və bənzərləri mümkün deyil).
Əgər bir neçə oyunçunun eyni əl növü varsa, kartların rütbələri müqayisə edilir.
Əsas fikir əvvəlcə yaranan dəstləri (cütlər, üçlüklər və ya dördlüklər) müqayisə etmək, sonra isə qalan kartları ən böyükdən ən kiçiyə doğru müqayisə etməkdir, bərabərlik pozulana qədər. Daha dəqiq:
Royal straight flush: (bərabərlik pozulmur)
Straight flush: Ən yüksək rütbəli kart müqayisə edilir.
Four of a kind: Dörd kart müqayisə edilir, sonra qalan biri.
Full house: Üç kart müqayisə edilir, sonra cüt.
Flush: Bütün kartlar tək-tək müqayisə edilir.
Straight: Ən yüksək rütbəli kart müqayisə edilir.
Three of a kind: Üç kart, sonra qalan iki kart müqayisə edilir.
Two pairs: Yuxarı rütbəli cüt, sonra aşağı rütbəli cüt, sonra sonuncu kart müqayisə edilir.
One pair: Cüt, sonra qalan üç kart müqayisə edilir.
High card: Bütün kartlar tək-tək müqayisə edilir.
Rütbələrin sırası: , , , , , , , ..., ən yüksəkdən ən aşağıya doğrudur, yalnız -dən sonra gəlir və aşağı sayılır. Bəzi xüsusi hallarda bərabərliyin qaldığını nəzərə alın. Həmçinin, bərabərlik pozuntusunda növlər heç vaxt nəzərə alınmır.
Baxın bir neçə müqayisə nümunəsinə (bunlar yalnız izah etmək üçün verilmişdir; bəzi kombinasiyalar Texas Hold'emde mümkün deyil):
---- və ----. Birincisi ikincini məğlub edir, çünki üçlük iki cütdən güclüdür.
---- və ----. Hər ikisi üçlü olduqda, əvvəl üçlü müqayisə edilir: və . daha yüksəkdir, buna görə birinci daha güclüdür. Qalan kartlar hesab olunmur, çünki bərabərlik artıq pozulub.
---- və ----. Hər ikisi yüksək kartdır, fərz edək ki, əllər eyni növdə deyil (yəni flush deyil). Üç ən yüksək rütbəli kart -- eynidir, dördüncü müqayisə edilir və birincisi daha güclü, çünki -dən yüksəkdir.
---- və ----. Hər ikisi bir cütdür, (hər ikisində də cütü var). Qalan kartlar -- və -- yüksəkdən aşağıya müqayisə edilir və birinci qalib gəlir, çünki -dən yüksəkdir.
İndi fərz edin ki, siz Texas Hold'em oyununda bir rəqiblə oynayırsınız və sizinlə rəqibin kartları artıq paylanıb. Siz təəccüblü şəkildə telepatik qabiliyyətə maliksiniz və rəqibin kartlarını bilirsiniz. Ancaq sizin qabiliyyətiniz o qədər güclü deyil ki, turn və riverin nə olacağını qabaqcadan görə biləsiniz.
Sizin vəzifəniz — qalan kartlardan təsadüfi seçilən turn və riverə əsaslanaraq, oyunu qazanma ehtimalınızı hesablayan bir proqram yazmaqdır. Siz və rəqib həmişə mümkün olan ən güclü əli seçməlisiniz. Bərabərlik halları hesablamada iştirak etməli, yəni məğlubiyyət kimi sayılmalıdır.
Hər biri aşağıdakı formatda olan çoxlu datasetlər var:
\text{YourCard}_1\ \text{YourCard}_2
\text{OpponentCard}_1\ \text{OpponentCard}_2
\text{CommunityCard}_1\ \text{CommunityCard}_2\ \text{CommunityCard}_3
Hər dataset üç sətrdən ibarətdir. Birinci və ikinci sətirlərdə sizin və rəqibin cib kartları yerləşir. Üçüncü sətirdə flop, yəni ilk üç ümumi kart var. Kartlar boşluqlarla ayrılır.
Hər kart iki simvolla göstərilir. Birinci simvol növü göstərir: (pik), (ürək), (kərpic) və ya (xaç). İkinci simvol rütbəni göstərir: , , , , (), -dan -yə qədər. Girişin sonu **"#"** ilə göstərilir. Bu sətir işlənməməlidir.
Ehtimalı bir sətirdə çap edin. Say istənilən sayda ondalık rəqəmə malik ola bilər, lakin 10^{-6}-dan böyük mütləq səhv olmamalıdır.
Nümunə 1