def creatTable( self ): # THIS FUNCTION WILL BE REMOVED AFTER KAINAN'S INTERFACE READY print(askForDeck3) while True: try: threeCard = input("First Card>") suit = int(threeCard[0]) numb = int(threeCard[1:]) d0 = card(suit, numb) threeCard = input("Second Card>") suit = int(threeCard[0]) numb = int(threeCard[1:]) d1 = card(suit, numb) threeCard = input("Third Card>") suit = int(threeCard[0]) numb = int(threeCard[1:]) d2 = card(suit, numb) break except EOFError: time.sleep(1) except ValueError: print("Unexpected error:", sys.exc_info()[0]) print("please re-enter your hand") pass #tableIns = table(board,bet,d0,d1,d2) tableIns = table(0, 0, d0, d1, d2) return tableIns
def creatCBR( self ): # THIS FUNCTION WILL BE REMOVED AFTER KAINAN'S INTERFACE READY while True: try: loc = input( "location>" ) # 0 means early location, 1 means middle, 2 means late locT = int(loc) twoCard = input("First Card>") suit = int(twoCard[0]) numb = int(twoCard[1:]) c0 = card(suit, numb) twoCard = input("Second Card>") suit = int(twoCard[0]) numb = int(twoCard[1:]) c1 = card(suit, numb) break except EOFError: time.sleep(1) except ValueError: print("Unexpected error:", sys.exc_info()[0]) print("please re-enter your hand") pass cbr = people(c0, c1, locT) return cbr
def numComboClassify(color, number, combo): if (color == 0): colorStr = "black" elif (color == 1): colorStr = "blue" elif (color == 2): colorStr = "red" elif (color == 3): colorStr = "yellow" if (combo > 2): print "doneList" for i in range(combo): print number+i, doneList.append(card(number+i, colorStr)) handPool[color][number+i] -= 1 doneList.append(card(0, "empty")) elif (combo == 2): print "waitingList" for i in range(combo): print number+i, waitingList.append(card(number+i, colorStr)) handPool[color][number+i] -= 1 elif (combo == 1): print "uselessList" uselessList.append(card(number, colorStr)) handPool[color][number] -= 1 print ""
def creatCard(realNum): if realNum % 13 == 0: numb = 13 else: numb = realNum % 13 c0 = card((realNum - 1) / 13, numb) return c0
def playerGet(rev, CARD, action): for line in rev: for index in line: getCardInHand(index) CARD = card(CARD['number'], CARD['color']) writeIntoMemory(CARD) AI_response = AIGet(hand, CARD, action, memory) return AI_response
def getStandard(self): return [ # Units [card(*cards[0]), 2], [card(*cards[1]), 2], [card(*cards[2]), 2], [card(*cards[3]), 4], [card(*cards[4]), 4], [card(*cards[5]), 3] ]
from operator import itemgetter, attrgetter from random import randint from card import * doneList = [] waitingList = [] uselessList = [] blackList = [] blueList = [] redList = [] yellowList = [] value = 0 block = card(-1, 'empty') def printList (list, listname): print listname +'(' + str(len(list)) + ')' + ':' for index in range(len(list)): print str(index) + '\t' + list[index].color + '\t' + str(list[index].num) # this function is using when debug def AI(hand, discard, mode): print "AI is thinking..." # start to analyis hand classifyByColor(hand) # doneList is done checkUseless(uselessList) printList(doneList, "doneList") printList(waitingList, "waitingList") printList(uselessList, "uselessList")
def __init__(self): self._cards = [] for suit in card.suit: for rank in card.rank: c = card(rank,suit) self._cards.append(c)
def fullDeck(self): for x in range(0, len(value)): for y in range(0, len(suit)): self.deck.append(card(id1[x] + suit[y], value[x]))
def getCardInHand(item): color = str(item['color']) number = int(item['number']) if (color != 'empty' and number != -1): draw_card(card(number, color)) writeIntoMemory(card(number, color))
def set_Up_Deck(self): card_pile = [] # Cards will get assigned a unique ID value # starting from 0 to 51 (inclusive) for num in range(0, 52): if num <= 3: some_card = card(num, '2', 2) card_pile.append(some_card) elif num > 3 and num <= 7: some_card = card(num, '3', 3) card_pile.append(some_card) elif num > 7 and num <= 11: some_card = card(num, '4', 4) card_pile.append(some_card) elif num > 11 and num <= 15: some_card = card(num, '5', 5) card_pile.append(some_card) elif num > 15 and num <= 19: some_card = card(num, '6', 6) card_pile.append(some_card) elif num > 19 and num <= 23: some_card = card(num, '7', 7) card_pile.append(some_card) elif num > 23 and num <= 27: some_card = card(num, '8', 8) card_pile.append(some_card) elif num > 27 and num <= 31: some_card = card(num, '9', 9) card_pile.append(some_card) elif num > 31 and num <= 35: some_card = card(num, '10', 10) card_pile.append(some_card) elif num > 35 and num <= 39: some_card = card(num, 'Jack', 10) card_pile.append(some_card) elif num > 39 and num <= 43: some_card = card(num, 'Queen', 10) card_pile.append(some_card) elif num > 43 and num <= 47: some_card = card(num, 'King', 10) card_pile.append(some_card) # The scenario that Aces have a value of 1 # must be handled outside of this class. elif num > 47 and num <= 51: some_card = card(num, 'Ace', 11) card_pile.append(some_card) return card_pile
def start(self): fp = self.openTodayFile() gameCnt = 0 ################################# # get position and people. # ################################# while True: print(askForPeople) try: self.peopleNum = int(input("people number>")) if self.peopleNum > 1 and self.peopleNum <= 10: fp.write("peopleNum: %s\r\n" % self.peopleNum) break else: print("People number is not valid: %r. Please re-enter", self.peopleNum) continue except EOFError: time.sleep(1) except ValueError: print("Unexpected error:", sys.exc_info()) print("please re-enter the people number") pass ################################# # Pre-flop, flop, turn # ################################# while (True): fp.closed # write this game data to today's file fp = self.openTodayFile() gameCnt += 1 cbr = self.creatCBR() tmpStr = "\tGAME %s: CBR has card %s %s, %s %s.\r\n" % ( gameCnt, cbr.c0.suit, cbr.c0.numb, cbr.c1.suit, cbr.c1.numb) fp.write(tmpStr) # Read in files to print current hand power line = cbr2Card.printPos(self.peopleNum, cbr.c0, cbr.c1) print( "--------------------------------------------------------------------------" ) cbr2Card.preFlop(line, cbr.location) fold = input("f ?>") if fold == "f" or fold == "F": self.write_pirntFold(fp) continue # Read in 3 desk card table = self.creatTable() # leave for future algorithm tmpStr = "\t Table has card %s %s, %s %s, %s %s.\r\n" % ( table.d0.suit, table.d0.numb, table.d1.suit, table.d1.numb, table.d2.suit, table.d2.numb) fp.write(tmpStr) # Calculate 5 card possiblity and output posForFiveCard, combForFiveCard = cbrMath.findpos( cbr.c0, cbr.c1, table.d0, table.d1, table.d2) self.printPoss(posForFiveCard, combForFiveCard) # F or get 6th card number while True: try: d3Str = input("f or 4th card in table>") if d3Str == "f" or d3Str == "F": fold = "f" break else: suit = int(d3Str[0]) numb = int(d3Str[1:]) d3 = card(suit, numb) tmpStr = "\t Table 4th card %s %s\r\n" % ( d3.suit, d3.numb) fp.write(tmpStr) break except EOFError: time.sleep(1) except ValueError: print("Unexpected error:", sys.exc_info()[0]) print("please re-enter the 4th card") pass if fold == "f": self.write_pirntFold(fp) continue else: table.updateCard(d3) posForSixCard, combForSixCard = cbrMath.findpos( cbr.c0, cbr.c1, table.d0, table.d1, table.d2, table.d3) self.printPoss(posForSixCard, combForSixCard) # F or get 7th card number while True: try: d4Str = input("f or 5th card in table>") if d4Str == "f" or d4Str == "F": fold = "f" break else: suit = int(d4Str[0]) numb = int(d4Str[1:]) d4 = card(suit, numb) tmpStr = "\t Table 5th card %s %s\r\n" % ( d4.suit, d4.numb) fp.write(tmpStr) break except EOFError: time.sleep(1) except ValueError: print("Unexpected error:", sys.exc_info()[0]) print("please re-enter the 5th card") pass if fold == "f": self.write_pirntFold(fp) continue else: table.updateCard(d3, d4) cbrMath.findpos(cbr.c0, cbr.c1, table.d0, table.d1, table.d2, table.d3, table.d4) print( "-------------------BELOW IS THE CHANCE FOR 5 CARD IN TABLE------------------------------" ) posForSevCard, combForSevCard = cbrMath.findpos( table.d0, table.d1, table.d2, table.d3, table.d4) self.printPoss(posForSevCard, combForSevCard) print( "----------------------------------------------------------------------------------------" ) print( "----------------------------------------------------------------------------------------" ) print( "---------------------------START NEXT ROUNG GAME NOW------------------------------------" ) print( "----------------------------------------------------------------------------------------" ) print( "----------------------------------------------------------------------------------------" )
def createdeck(self): for j in ['H', 'S', 'D', 'C']: for i in range(1, 14): new_deck = card(j, i) deck_in_list.append(new_deck) return deck_in_list #will return all the card in the deck in the form of the list so can be shuffled
def colorComboClassify(color, number, combo): if (combo > 2): print "doneList" for i in range(len(handPool)): if (handPool[i][number] > 0): if (i == 0): print "black", doneList.append(card(number, "black")) handPool[i][number] -= 1 elif (i == 1): print "blue", doneList.append(card(number, "blue")) handPool[i][number] -= 1 elif (i == 2): print "red", doneList.append(card(number, "red")) handPool[i][number] -= 1 elif (i == 3): print "yellow", doneList.append(card(number, "yellow")) handPool[i][number] -= 1 doneList.append(card(0, "empty")) elif (combo == 2): print "waitingList" for i in range(len(handPool)): if (handPool[i][number] > 0): if (i == 0): print "black", waitingList.append(card(number, "black")) handPool[i][number] -= 1 elif (i == 1): print "blue", waitingList.append(card(number, "blue")) handPool[i][number] -= 1 elif (i == 2): print "red", waitingList.append(card(number, "red")) handPool[i][number] -= 1 elif (i == 3): print "yellow", waitingList.append(card(number, "yellow")) handPool[i][number] -= 1 elif (combo == 1): if (color == 0): uselessList.append(card(number, "black")) elif (color == 1): uselessList.append(card(number, "blue")) elif (color == 2): uselessList.append(card(number, "red")) elif (color == 3): uselessList.append(card(number, "yellow")) handPool[color][number] -= 1 print ""
def __init__(self): self.cardList = [] for i in ['Hearts', 'Spades', 'Clubs', 'Diamonds']: for j in range(1, 14): self.cardList.append(card(j, i))