def winner(gameResources): p1 = gameResources["players"][0] p2 = gameResources["players"][1] p1card = gameResources["cardsinplay"][0] p2card = gameResources["cardsinplay"][1] print('Player 1 plays card ' + p1card.string()) print('Player 2 plays card ' + p2card.string()) #compare the two cards try: if Card.compare(p1card.value, p2card.value) == 1: print('Player 1 wins the round!') print('-----------------------------------------------------') for c in gameResources["cardsinplay"]: p1.hand.append(gameResources["cardsinplay"].pop()) gameResources["isTie"] = False elif Card.compare(p1card.value, p2card.value) == 2: print('Player 2 wins the round!') print('-----------------------------------------------------') for c in gameResources["cardsinplay"]: p2.hand.append(gameResources["cardsinplay"].pop()) gameResources["isTie"] = False else: print('Both players tied!') gameResources["cardsinplay"].append(p1.hand[0]) gameResources["cardsinplay"].append(p1.hand[1]) gameResources["cardsinplay"].append(p2.hand[0]) gameResources["cardsinplay"].append(p2.hand[1]) p1.hand = p1.hand[2:] p2.hand = p2.hand[2:] gameResources["isTie"] = True gameResources["hasCards"] = (len(p1.hand) != 0) and (len(p2.hand) != 0) gameResources["emptyHand"] = not gameResources["hasCards"] #print(len(p1.hand)) #print(len(p2.hand)) #print(gameResources["hasCards"]) #print(gameResources["emptyHand"]) except IndexError: if len(p1.hand) == 0 or len(p2.hand) == 0 : gameResources["emptyHand"] = True gameResources["hasCards"] = False gameResources["isTie"] = False
def checkHand(gameResources): playerNum = gameResources["currentPlayer"] player = gameResources["players"][playerNum] cardCount = gameResources["cardCount"] gameResources["hasSuit"] = True for i in range(1, cardCount): if Card.compare(player.hand[i].suit, player.hand[i - 1].suit) != 0: gameResources["hasSuit"] = False if gameResources["hasSuit"]: gameResources["gameOver"] = True
def playCard(gameResources): d = gameResources["dealer"] playerNum = gameResources["currentPlayer"] player = gameResources["players"][playerNum] cardnum = gameResources["cardnum"] if cardnum != -1: cardToPlay = gameResources["cardpicked"] if Card.compare(cardToPlay.value, gameResources["discardList"][0].value) == 0 or Card.compare(cardToPlay.suit, gameResources["discardList"][0].suit) == 0: gameResources["discardList"].insert(0, cardToPlay) del player.hand[(cardnum - 1)] else: print("Invalid card, Player %(num)d draws a card"% {"num": (playerNum + 1)}) player.hand.append(d.dealCard())