PokerKit adalah sebuah library Python yang dikembangkan untuk mempelajari game poker dengan detail dan variasi yang tinggi. Dalam artikel ini, kita akan membahas bagaimana menggunakan PokerKit untuk memahami game Badugi, salah satu varian poker yang paling populer.
Menggunakan PokerKit
PokerKit dapat digunakan dengan cara membuat objek FixedLimitBadugi
dan mengatur parameter-parameter awal seperti ante, blinds, dan stack players. Dalam contoh di bawah ini, kita akan membuat game Badugi dengan 4 player dan stack awal yang tak terhingga.
from math import inf
from pokerkit import Automation, FixedLimitBadugi
state = FixedLimitBadugi.create_state(
(
Automation.ANTE_POSTING,
Automation.BET_COLLECTION,
Automation.BLIND_OR_STRADDLE_POSTING,
Automation.HAND_KILLING,
Automation.CHIPS_PUSHING,
Automation.CHIPS_PULLING,
),
True, # Uniform antes?
0, # Antes
(1, 2), # Blinds or straddles
2, # Small-bet
4, # Big-bet
inf, # Starting stacks
4, # Number of players
)
Permainan Badugi
Kita akan memulai permainan dengan meng-deal hole cards kepada setiap player. Lalu, kita akan melakukan preflop dealings dan actions, seperti folding, checking, atau raising.
state.deal_hole('????????') # Bob
state.deal_hole('????????') # Carol
state.deal_hole('????????') # Ted
state.deal_hole('????????') # Alice
state.fold() # Ted
state.check_or_call() # Alice
state.check_or_call() # Bob
state.check_or_call() # Carol
Draw dan Actions
Kita akan melakukan draw pertama dan actions. Dalam setiap tahap, kita akan memutuskan apakah player akan menahan kartu atau mengganti dengan kartu baru.
state.stand_pat_or_discard('????') # Bob
state.stand_pat_or_discard('????') # Carol
state.stand_pat_or_discard('??') # Alice
state.burn_card('??')
state.deal_hole('????') # Bob
state.deal_hole('????') # Carol
state.deal_hole('??') # Alice
state.check_or_call() # Bob
state.complete_bet_or_raise_to() # Carol
state.check_or_call() # Alice
state.check_or_call() # Bob
Showdown
Setelah draw terakhir, kita akan melakukan showdown. Dalam contoh di bawah ini, Alice dan Carol memiliki kartu terbaik dan mendapat bayaran.
state.show_or_muck_hole_cards('2s4c6d9h') # Alice
state.show_or_muck_hole_cards('3s5d7c8h') # Carol
print(state.stacks) # [inf, inf, inf, inf]
print(state.payoffs) # [-4, 20, 0, -16]
Tes dan Validasi
PokerKit telah dilakukan tes secara ekstensif dan dinyatakan valid oleh pengguna yang sungguh. Dengan demikian, Anda dapat menggunakan PokerKit dengan percaya diri untuk mempelajari game Badugi dan varian poker lainnya.
Kontribusi
Anda juga dapat berkontribusi pada Pengembangan PokerKit! Silakan baca Panduan Kontribusi untuk lebih lanjut.
Lisensi
PokerKit didistribusikan dengan lisensi MIT.
Citation
Jika Anda menggunakan PokerKit dalam penelitian Anda, silakan citat library ini:
@ARTICLE{10287546,
author={Kim, Juho},
journal={IEEE Transactions on Games},
title={PokerKit: A Comprehensive Python Library for Fine-Grained Multi-Variant Poker Game Simulations},
year={2023},
volume={},
number={},
pages={1-8},
doi={10.1109/TG.2023.3325637}}