71 lines
5.4 KiB
Python
Executable File
71 lines
5.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import argparse
|
|
pusher = {
|
|
'A': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '20+', '3': '20+', '2': '20+'},
|
|
'K': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '20+', '3': '19.9', '2': '19.3'},
|
|
'Q': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '16.3', '3': '13.5', '2': '12.7'},
|
|
'J': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '18.6', '5': '14.7', '4': '13.5', '3': '10.6', '2': '8.5'},
|
|
'T': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '11.9', '4': '10.5', '3': '7.7', '2': '6.5'},
|
|
'9': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '14.4', '4': '6.9', '3': '4.9', '2': '3.7'},
|
|
'8': {'A': '20+', 'K': '18.0', 'Q': '13.0', 'J': '13.3', 'T': '17.5', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '18.8', '4': '10.1', '3': '2.7', '2': '2.5'},
|
|
'7': {'A': '20+', 'K': '16.1', 'Q': '10.3', 'J': '8.5', 'T': '9.0', '9': '10.8', '8': '14.7', '7': '20+', '6': '20+', '5': '20+', '4': '13.9', '3': '2.5', '2': '2.1'},
|
|
'6': {'A': '20+', 'K': '15.1', 'Q': '9.6', 'J': '6.5', 'T': '5.7', '9': '5.2', '8': '7.0', '7': '10.7', '6': '20+', '5': '20+', '4': '16.3', '3': '2.5', '2': '2.0'},
|
|
'5': {'A': '20+', 'K': '14.2', 'Q': '8.9', 'J': '6.0', 'T': '4.1', '9': '3.5', '8': '3.0', '7': '2.6', '6': '2.4', '5': '20+', '4': '20+', '3': '2.2', '2': '2.0'},
|
|
'4': {'A': '20+', 'K': '13.1', 'Q': '7.9', 'J': '5.4', 'T': '3.8', '9': '2.7', '8': '2.3', '7': '2.1', '6': '2.0', '5': '2.1', '4': '20+', '3': '1.8', '2': '1.8'},
|
|
'3': {'A': '20+', 'K': '12.2', 'Q': '7.5', 'J': '5.0', 'T': '3.4', '9': '2.5', '8': '1.9', '7': '1.8', '6': '1.7', '5': '1.8', '4': '1.6', '3': '20+', '2': '1.7'},
|
|
'2': {'A': '20+', 'K': '11.6', 'Q': '7.0', 'J': '4.6', 'T': '2.9', '9': '2.2', '8': '1.8', '7': '1.6', '6': '1.5', '5': '1.5', '4': '1.4', '3': '1.4', '2': '20+'},
|
|
}
|
|
|
|
caller = {
|
|
'A': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '20+', '3': '20+', '2': '20+'},
|
|
'K': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '17.6', '7': '15.2', '6': '14.3', '5': '13.2', '4': '12.1', '3': '11.4', '2': '10.7'},
|
|
'Q': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '16.1', '8': '13.0', '7': '10.5', '6': '9.9', '5': '8.9', '4': '8.4', '3': '7.8', '2': '7.2'},
|
|
'J': {'A': '20+', 'K': '20+', 'Q': '19.5', 'J': '20+', 'T': '18.0', '9': '13.4', '8': '10.6', '7': '8.8', '6': '7.0', '5': '6.9', '4': '6.1', '3': '5.8', '2': '5.6'},
|
|
'T': {'A': '20+', 'K': '20+', 'Q': '15.3', 'J': '12.7', 'T': '20+', '9': '11.5', '8': '9.3', '7': '7.4', '6': '6.3', '5': '5.2', '4': '5.2', '3': '4.8', '2': '4.5'},
|
|
'9': {'A': '20+', 'K': '17.1', 'Q': '11.7', 'J': '9.5', 'T': '8.4', '9': '20+', '8': '8.2', '7': '7.0', '6': '5.8', '5': '5.0', '4': '4.3', '3': '4.1', '2': '3.9'},
|
|
'8': {'A': '20+', 'K': '13.8', 'Q': '9.7', 'J': '7.6', 'T': '6.6', '9': '6.0', '8': '20+', '7': '6.5', '6': '5.6', '5': '4.8', '4': '4.1', '3': '3.6', '2': '3.5'},
|
|
'7': {'A': '20+', 'K': '12.4', 'Q': '8.0', 'J': '6.4', 'T': '5.5', '9': '5.0', '8': '4.7', '7': '20+', '6': '5.4', '5': '4.8', '4': '4.1', '3': '3.6', '2': '3.3'},
|
|
'6': {'A': '20+', 'K': '11.0', 'Q': '7.3', 'J': '5.4', 'T': '4.6', '9': '4.2', '8': '4.1', '7': '4.0', '6': '20+', '5': '4.9', '4': '4.3', '3': '3.8', '2': '3.3'},
|
|
'5': {'A': '20+', 'K': '10.2', 'Q': '6.8', 'J': '5.1', 'T': '4.0', '9': '3.7', '8': '3.6', '7': '3.6', '6': '3.7', '5': '20+', '4': '4.6', '3': '4.0', '2': '3.6'},
|
|
'4': {'A': '18.3', 'K': '9.1', 'Q': '6.2', 'J': '4.7', 'T': '3.8', '9': '3.3', '8': '3.2', '7': '3.2', '6': '3.3', '5': '3.5', '4': '20+', '3': '3.8', '2': '3.4'},
|
|
'3': {'A': '16.6', 'K': '8.7', 'Q': '5.9', 'J': '4.5', 'T': '3.6', '9': '3.1', '8': '2.9', '7': '2.9', '6': '2.9', '5': '3.1', '4': '3.0', '3': '20+', '2': '3.3'},
|
|
'2': {'A': '15.8', 'K': '8.1', 'Q': '5.6', 'J': '4.2', 'T': '3.5', '9': '3.0', '8': '2.8', '7': '2.6', '6': '2.7', '5': '2.8', '4': '2.7', '3': '2.6', '2': '15.0'},
|
|
}
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="Poker hand coefficient and Nash calling info.")
|
|
|
|
#parser.add_argument("cards", type=str, help="ex:AK")
|
|
parser.add_argument("--cards", "-c", type=str, help="ex:AK")
|
|
args = parser.parse_args()
|
|
cards = args.cards
|
|
try:
|
|
cards[2]
|
|
except IndexError:
|
|
cards = cards + 'o'
|
|
print("pusher: " + get_pusher(cards[0].upper(), cards[1].upper(), cards[2] == 's'))
|
|
print("caller: " + get_call(cards[0].upper(), cards[1].upper(), cards[2] == 's'))
|
|
|
|
def get_call(card1, card2, suited):
|
|
if suited:
|
|
if card1 < card2:
|
|
card1, card2 = card2, card1
|
|
else:
|
|
if card1 > card2:
|
|
card1, card2 = card2, card1
|
|
return caller[card1][card2]
|
|
|
|
def get_pusher(card1, card2, suited):
|
|
if suited:
|
|
if card1 < card2:
|
|
card1, card2 = card2, card1
|
|
else:
|
|
if card1 > card2:
|
|
card1, card2 = card2, card1
|
|
return pusher[card1][card2]
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|