示例#1
0
    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
示例#2
0
    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
示例#3
0
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 ""
示例#4
0
def creatCard(realNum):
    if realNum % 13 == 0:
        numb = 13
    else:
        numb = realNum % 13
    c0 = card((realNum - 1) / 13, numb)
    return c0
示例#5
0
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
示例#6
0
 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]
     ]
示例#7
0
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")
示例#8
0
文件: deck.py 项目: hzach/python-misc
	def __init__(self):
		self._cards = []
		for suit in card.suit:
			for rank in card.rank:
				c = card(rank,suit)
				self._cards.append(c)
示例#9
0
 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]))
示例#10
0
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))
示例#11
0
    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
示例#12
0
    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(
                "----------------------------------------------------------------------------------------"
            )
示例#13
0
 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
示例#14
0
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 ""
示例#15
0
 def __init__(self):
     self.cardList = []
     for i in ['Hearts',  'Spades', 'Clubs', 'Diamonds']:
         for j in range(1, 14):
             self.cardList.append(card(j, i))