Poker Əllərini Necə Kodlaşdırmaq olar - Əlləri Yüksək Kartla müqayisə etmək

Göndərildi: 08.09.2021
Məqalənin müəllifi Adəm Quliyev

Son məqalə, iki poker əlini müqayisə etmək üçün kod yazmağı sizə təqdim etdi. Fərqli rütbəli poker əllərini müqayisə edərkən, daha yüksək dərəcəyə sahib olanın qalib gəldiyini (tam bir evin üç növdən üstün olduğunu) öyrəndiniz. Amma eyni pokerdə əlləriniz olanda nə baş verir? 🤔

Bu yazıda ən aşağı sıralanan poker əlini, yüksək kartı müqayisə etməyi öyrənəcəksiniz.

Yüksək kartlı bir əl, bir cüt, iki cüt, üç növ, düz və s. Kimi digər kateqoriyalara düşmür. , avtomatik olaraq yüksək kartlı bir əldir.

Yüksək kartlı əlləri müqayisə edərkən, ən yüksək reytinq kartına sahib olan qalib gəlir. Eyni yüksək rütbəli karta sahibdirlərsə, sonrakı ən yüksək rütbəli kartı müqayisə edirsiniz və s.

Əlləri müqayisə etməzdən əvvəl, kartların sıralanma sırasına görə sıralanması müqayisələri çox asanlaşdırır. Ancaq sonuna vahşi kartlar qoymaq əvəzinə, əvvəlində gedəcəklər. Bu yazının sonunda bunu daha ətraflı şəkildə izah edəcəyik.

Gəlin bu iki ələ baxaq:

Gördüyünüz kimi, ilk dörd kartın hər iki əli eyni dəyərdədir. Son karta çatırıq və ikinci əlin üçü birinci əlin ikisini vurur. Beləliklə, ikinci yüksək kart əli birincini döyür.

Qurmaq

Qeyd:Quraşdırmanın ilk mərhələlərini burada poker əllərini müqayisə etmək üçün giriş səhifəsində tapa bilərsiniz.

Əl müqayisələrinin bir çoxunda, vahşi kartlar ən yüksək kart dəyəri olaraq qəbul edilə bilər, çünki hər hansı bir dəyəri qəbul edə bilərlər. Beləliklə, hələ də poker əlini doyurarkən mümkün olan ən yüksək kart dəyərini alacaq (bu, poker əlinə uyğun gəldikdə artıq müəyyən edilmişdi). Xatırlayırsınızsa, poker əllərini uyğunlaşdırarkən, kartları azalan qaydada sıraladıq, ən aşağı dəyər kimi wild kartları sıralanmış əlin sonunda sifariş etdik. Bununla birlikdə, poker əllərini müqayisə edərkən, vahşi kartlar ən yüksək dəyər olacaq və onları sıralanan əlin əvvəlində sifariş edəcək.

Oradan daha sadə olsa da yeni bir funksiyaya ehtiyacınız olacaq. Və bu növ birdən çox poker əl müqayisə ilə istifadə ediləcəyi üçün bir funksiya olaraq CardMatchUtils sinifinizə qoya bilərsiniz:

SortCardsByDealendingValueHighWilds
OnSortCardsByDescendingValueHighWilds

Əsas funksiyada, SortCardsByDescendingValueHighWilds, Card obyektlərinin bir sıra olan əl parametrinin surəti.

Sıralama funksiyası, kartların necə sifariş olunacağını təyin edən OnSortCardsByDescendingValueHighWilds geri çağırma funksiyası ilə birlikdə serialda çağırılır. Bu funksiya sıfırdan böyük bir rəqəm qaytardıqda, kart2 kart 1 -dən əvvəl yerləşdirilməlidir (kart2 daha yüksək dəyərə malikdir). Əgər funksiya sıfırdan az bir rəqəm qaytararsa, ilk növbədə card1 olmalıdır. Və əgər funksiya sıfır qaytararsa, hər iki kartın dəyəri bərabərdir və onların bir -birinə qarşı sıralanma qaydası heç bir əhəmiyyət kəsb etmir.

Yüksək Kart Əllərini Müqayisə Etmək Üçün Kod Yazmaq

Bu məqalə yalnız yüksək kart əlinə yönəldildiyindən, GetWinningHand funksiyasından, poker əllərinin eyni kart olduğunu düşünürük ki, bu da yüksək kartdır.

GetWinningHand funksiyası nəticədə FindWinnerHighCard -a zəng edərək iki yüksək kart əlini müqayisə edəcək. FindWinnerHighCard bu məqalənin əsas müzakirə mövzusudur. Hər iki oyunçunun əli olan iki parametri qəbul edir və qazanan yüksək kart sahibi olan oyunçunun şəxsiyyətini qaytaracaq. Hər iki əl bərabərdirsə, 0 qaytaracaq (heç -heçə demək üçün istifadə edəcəyik). Gəlin bir az yalançı kodla dalaq. 🙂

FindWinnerHighCard

Bu funksiya əvvəlcə kartları azalan kart dəyərində sıralayır, əvvəlcə wild kartları sifariş edir. Sonra, qalibin müəyyən edilməsi üçün hər əlin ilk kartını müqayisə edir. Hər iki kart eyni olarsa, ikinci kartı müqayisə edir və s. Qazanan bir kart tapana və ya hər iki əlindəki bütün kartlar müqayisə olunana qədər bunu edir. İkincisi belədirsə, hər iki kart bərabər dərəcəyə malikdir və funksiya 0 qaytarır.

Ən yüksək kartın iki əlini müqayisə etmək üçün bu çox şeydir. ✔

Öz əllərinizi müqayisə edin

Öz əllərinizi qurmaq və yüksək kartları müqayisə etmək üçün aşağıdakı idarəetmə vasitələrindən istifadə edə bilərsiniz. Ətrafınızda oynayaraq əylənin və bir problem taparsanız, mənə bildirin!