PokerOddsCalc adalah evaluator tangan poker sederhana yang dapat mensimulasikan varian poker Texas Hold'em atau Omaha. Kebanyakan kalkulator odds poker murni yang ditulis dengan Python saat ini menggunakan tabel hash untuk menyimpan informasi Kartu sebagai bit untuk meningkatkan kinerja atau menggunakan desain OOP yang kuat, yang mengorbankan kinerja. Tujuan pengembangan proyek ini adalah untuk mencapai efisiensi simulasi yang relatif tinggi tanpa menggunakan hashtable.
Lihat demo.ipynb untuk melihat semua fungsi yang didukung alat ini atau lanjutkan di bawah untuk beberapa contoh singkat.
instal dari github
$ pip install git+https://github.com/johnsoong216/PokerOddsCalc.git
Untuk memproses data dengan kecepatan tinggi, semua informasi Kartu diubah menjadi array numpy untuk meningkatkan kecepatan.
Masukan kartu diambil dengan format nomor : 23456789TJQKA diikuti dengan jenis : dcsh.
Untuk menentukan peringkat kartu, kami menggunakan sistem heksadesimal untuk menetapkan kekuatan kartu dari kartu paling signifikan hingga kartu paling tidak signifikan. Ada 7462 tangan poker yang berbeda jadi kami membuat algoritma yang mengubah tangan menjadi nilai integer.
Pertama kita tentukan apakah kombinasi 5 kartu tersebut cocok/lurus. Ini dapat dengan cepat mengidentifikasi jenis beberapa tangan.
Kemudian kita bekerja dengan nilai numerik dari kartu di mana 2 hingga A diwakili oleh bilangan bulat dari 2 hingga 14.
Kami mengurutkan kartu untuk mengidentifikasi jenis kartu dengan cepat.
Langkah Pertama
Langkah Kedua
Langkah Ketiga
Kesimpulan
Impor Permainan
from PokerOddsCalc import HoldemTable , OmahaTable
Buat permainan, tentukan jumlah pemain dan jenis dek (dek penuh atau dek pendek)
ht = HoldemTable ( num_players = 5 , deck_type = 'full' ) # Will Create Three Players: Player 1 - 5
Bagikan Kartu Secara Acak dengan memanggil fungsi next_round() pada langkah mana pun dalam permainan, atau Tetapkan Secara Manual
ht . add_to_hand ( 1 , [ 'Td, ' Ad ']) # Assign Player 1
ht . next_round () # Assign all other players randomly
Simulasikan untuk menghasilkan hasil, tentukan jumlah skenario dan jenis perhitungan peluang (Untuk lebih jelasnya silakan periksa demo.ipynb )
ht . simulate ()
#
{ 'Player 1 Win' : 50.31 ,
'Player 1 Tie' : 3.84 ,
'Player 2 Win' : 12.09 ,
'Player 2 Tie' : 0.41 ,
'Player 3 Win' : 11.4 ,
'Player 3 Tie' : 3.84 ,
'Player 4 Win' : 11.05 ,
'Player 4 Tie' : 0.41 ,
'Player 5 Win' : 11.31 ,
'Player 5 Tie' : 0.41 }
Lihat Tabel Saat Ini, Tangan Saat Ini, atau Hasil Saat Ini (jika Game Berakhir)
ht . view_table ()
ht . view_hand ()
ht . view_result ()