from random import shuffle




class Card(object):
    suit = 'Spades'
    value = 14

    def __init__(self, passedSuit = 'Spades', passedValue = 14):
        self.suit = passedSuit
        self.value = passedValue

    def printCard(self):
        if self.value <= 10:
            print self.value,
        elif self.value == 11:
            print 'Jack',
        elif self.value == 12:
            print 'Queen',
        elif self.value == 13:
            print 'King',
        elif self.value == 14:
            print 'Ace',
        print ' of ',self.suit








suits = ['Spades','Diamonds','Hearts','Clubs']
deck = []
for s in suits:
    for v in range(2,15):
        deck.append( Card(s,v) )






shuffle(deck)
playerDeck = []
compuDeck = []
while len(deck) > 0:
    if len(deck)%2 == 0:
        playerDeck.append( deck.pop() )
    else:
        compuDeck.append( deck.pop() )




















while len(playerDeck) > 0 and len(compuDeck) > 0:
    dummy = raw_input('Press Enter to continue.')
    print "Player's Card is: ",
    playerDeck[0].printCard()
    print "Computer's Card is: ",
    compuDeck[0].printCard()
    if playerDeck[0].value > compuDeck[0].value :
        p = playerDeck.pop(0)
        c = compuDeck.pop(0)
        playerDeck.append(p)
        playerDeck.append(c)
    elif playerDeck[0].value < compuDeck[0].value :
        p = playerDeck.pop(0)
        c = compuDeck.pop(0)
        compuDeck.append(p)
        compuDeck.append(c)
    else:
        playerWar = 0
        compuWar = 0
        while playerDeck[playerWar].value == compuDeck[compuWar].value:
            print "War!!!!"
            if len(playerDeck) > playerWar + 4:
                playerWar = playerWar+4
            else:
                playerWar = len(playerDeck)-1
            if len(compuDeck) > compuWar + 4:
                compuWar = compuWar+4
            else:
                compuWar = len(compuDeck)-1
                
            print "Player cards: ",
            for c in playerDeck[0:playerWar-1]:
                c.printCard()
            print "Computer cards: ",
            for c in compuDeck[0:compuWar-1]:
                c.printCard()
                
            print "Player's ",
            playerDeck[playerWar].printCard()
            print " vs. "
            print "Computer's",
            compuDeck[compuWar].printCard()
            
        if playerDeck[playerWar].value > compuDeck[compuWar].value:
            print "Player won!"
            card = playerDeck.pop(0)
            playerDeck.append(card)
            for c in range(0,compuWar+1):
                card = compuDeck.pop(c)
                playerDeck.append(card)
        else:
            print "Computer won!"
            card = compuDeck.pop(0)
            compuDeck.append(card)
            for c in range(0,playerWar+1):
                card = playerDeck.pop(c)
                compuDeck.append(card)

        
    print 'Player: ',len(playerDeck),' Computer: ',len(compuDeck)

