Beispiel #1
0
def playCard(hand, lastCard, cardStack, hasDrawnCard, playerName, direction,
             drawCards, saidUNO):
    if "KI" in playerName:
        return playCardKI(hand, lastCard, cardStack, hasDrawnCard, playerName,
                          direction, drawCards, saidUNO)
    else:
        whichCard = input("Cual Carta va a Jugar: ")
        if whichCard == "d" or whichCard == "D":
            if drawCards[0] > 0:
                for card in range(drawCards[0]):
                    hand.append(drawCard(cardStack))
                drawCards[1] = 1
                sortHand(hand)
                return lastCard
            elif hasDrawnCard == False:
                hand.append(drawCard(cardStack))
                sortHand(hand)
                hasDrawnCard = True
                CurrentScreen.showCurrentScreen(hand, direction, lastCard,
                                                playerName, drawCards)
            else:
                print("Ya usted ha tomado '1' Carta, Pase el Turno.")
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
        if whichCard == "p" or whichCard == "P":
            if (hasDrawnCard == True):
                return lastCard
            print("Primero tiene que tomar '1' Carta")
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
        if whichCard == "u" or whichCard == "U":
            saidUNO = True
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
        try:
            if (canBeThrown(hand[int(whichCard)], lastCard)):
                if (drawCards[0] > 0
                        and (hand[int(whichCard)].getValue() != "roba2"
                             and hand[int(whichCard)].getValue != "roba4")):
                    print("robar cartas o jugar +x Cartas!")
                    return playCard(hand, lastCard, cardStack, hasDrawnCard,
                                    playerName, direction, drawCards, saidUNO)
                thrownCard = hand.pop(int(whichCard))
                if (len(hand) == 1 and saidUNO == False):
                    print(
                        "¡Olvidaste decir UNO! - ¡Ahora tienes que sacar 1 carta!"
                    )
                    hand.append(drawCard(cardStack))
                    input("¡Presione Enter para continuar!")
                return thrownCard
            else:
                print("¡No puede ser lanzado!")
                return playCard(hand, lastCard, cardStack, hasDrawnCard,
                                playerName, direction, drawCards, saidUNO)
        except:
            print("¡Error!")
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
Beispiel #2
0
def playCard(hand, lastCard, cardStack, hasDrawnCard, playerName, direction,
             drawCards, saidUNO):
    if "KI" in playerName:
        return playCardKI(hand, lastCard, cardStack, hasDrawnCard, playerName,
                          direction, drawCards, saidUNO)
    else:
        whichCard = input("Que carta quieres jugar: ")
        if whichCard == "d" or whichCard == "D":
            if drawCards[0] > 0:
                for card in range(drawCards[0]):
                    hand.append(drawCard(cardStack))
                drawCards[1] = 1
                sortHand(hand)
                return lastCard
            elif hasDrawnCard == False:
                hand.append(drawCard(cardStack))
                sortHand(hand)
                hasDrawnCard = True
                CurrentScreen.showCurrentScreen(hand, direction, lastCard,
                                                playerName, drawCards)
            else:
                print("Ya has dibujado una carta!")
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
        if whichCard == "p" or whichCard == "P":
            if (hasDrawnCard == True):
                return lastCard
            print("Primero debes dibujar una carta!")
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
        if whichCard == "u" or whichCard == "U":
            saidUNO = True
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
        try:
            if (canBeThrown(hand[int(whichCard)], lastCard)):
                if (drawCards[0] > 0
                        and (hand[int(whichCard)].getValue() != "draw2"
                             and hand[int(whichCard)].getValue != "draw4")):
                    print("Robar cartas o jugar + x tarjeta!")
                    return playCard(hand, lastCard, cardStack, hasDrawnCard,
                                    playerName, direction, drawCards, saidUNO)
                thrownCard = hand.pop(int(whichCard))
                if (len(hand) == 1 and saidUNO == False):
                    print(
                        "¡Olvidaste decir UNO! Ahora tienes que sacar 1 carta!"
                    )
                    hand.append(drawCard(cardStack))
                    input("Presiona cualquier tecla!")
                return thrownCard
            else:
                print("No puede ser lanzado!")
                return playCard(hand, lastCard, cardStack, hasDrawnCard,
                                playerName, direction, drawCards, saidUNO)
        except:
            print("Error!")
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
Beispiel #3
0
def playCard(hand, lastCard, cardStack, hasDrawnCard, playerName, direction,
             drawCards, saidUNO):
    if "KI" in playerName:
        return playCardKI(hand, lastCard, cardStack, hasDrawnCard, playerName,
                          direction, drawCards, saidUNO)
    else:
        whichCard = input("Which Card you want to play: ")
        if whichCard == "d" or whichCard == "D":
            if drawCards[0] > 0:
                for card in range(drawCards[0]):
                    hand.append(drawCard(cardStack))
                drawCards[1] = 1
                sortHand(hand)
                return lastCard
            elif hasDrawnCard == False:
                hand.append(drawCard(cardStack))
                sortHand(hand)
                hasDrawnCard = True
                CurrentScreen.showCurrentScreen(hand, direction, lastCard,
                                                playerName, drawCards)
            else:
                print("You already have drawn a card!")
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
        if whichCard == "p" or whichCard == "P":
            if (hasDrawnCard == True):
                return lastCard
            print("You first have to draw a card!")
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
        if whichCard == "u" or whichCard == "U":
            saidUNO = True
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
        try:
            if (canBeThrown(hand[int(whichCard)], lastCard)):
                if (drawCards[0] > 0
                        and (hand[int(whichCard)].getValue() != "draw2"
                             and hand[int(whichCard)].getValue != "draw4")):
                    print("draw cards or play +x card!")
                    return playCard(hand, lastCard, cardStack, hasDrawnCard,
                                    playerName, direction, drawCards, saidUNO)
                thrownCard = hand.pop(int(whichCard))
                if (len(hand) == 1 and saidUNO == False):
                    print(
                        "You forgot to say UNO! Now you have to draw 1 card!")
                    hand.append(drawCard(cardStack))
                    input("Press any key!")
                return thrownCard
            else:
                print("Can't be thrown!")
                return playCard(hand, lastCard, cardStack, hasDrawnCard,
                                playerName, direction, drawCards, saidUNO)
        except:
            print("¡Error!")
            return playCard(hand, lastCard, cardStack, hasDrawnCard,
                            playerName, direction, drawCards, saidUNO)
Beispiel #4
0
def playCard(hand, lastCard, cardStack, hasDrawnCard, playerName, direction, drawCards, saidUNO):
    if "KI" in playerName:
        return playCardKI(hand, lastCard, cardStack, hasDrawnCard, playerName, direction, drawCards, saidUNO)
    else:
        whichCard = input("Which Card you want to play: ")
        if whichCard == "d" or whichCard == "D":
            if drawCards[0] > 0:
                for card in range(drawCards[0]):
                    hand.append(drawCard(cardStack))
                drawCards[1] = 1
                sortHand(hand)
                return lastCard
            elif hasDrawnCard == False:
                hand.append(drawCard(cardStack))
                sortHand(hand)
                hasDrawnCard = True
                CurrentScreen.showCurrentScreen(
                    hand, direction, lastCard, playerName, drawCards)
            else:
                print("You already have drawn a card!")
            return playCard(hand, lastCard, cardStack, hasDrawnCard, playerName, direction, drawCards, saidUNO)
        if whichCard == "p" or whichCard == "P":
            if(hasDrawnCard == True):
                return lastCard
            print("You first have to draw a card!")
            return playCard(hand, lastCard, cardStack, hasDrawnCard, playerName, direction, drawCards, saidUNO)
        if whichCard == "u" or whichCard == "U":
            saidUNO = True
            return playCard(hand, lastCard, cardStack, hasDrawnCard, playerName, direction, drawCards, saidUNO)
        try:
            if(canBeThrown(hand[int(whichCard)], lastCard)):
                if(drawCards[0] > 0 and (hand[int(whichCard)].getValue() != "draw2" and hand[int(whichCard)].getValue != "draw4")):
                    print("draw cards or play +x card!")
                    return playCard(hand, lastCard, cardStack, hasDrawnCard, playerName, direction, drawCards, saidUNO)
                thrownCard = hand.pop(int(whichCard))
                if(len(hand) == 1 and saidUNO == False):
                    print("You forgot to say UNO! Now you have to draw 1 card!")
                    hand.append(drawCard(cardStack))
                    input("Press any key!")
                return thrownCard
            else:
                print("Can't be thrown!")
                return playCard(hand, lastCard, cardStack, hasDrawnCard, playerName, direction, drawCards, saidUNO)
        except:
            print("Error!")
            return playCard(hand, lastCard, cardStack, hasDrawnCard, playerName, direction, drawCards, saidUNO)
Beispiel #5
0
         drawCards[0] += 2
 elif lastCard.getValue() == "draw4":
     if lastCard.backInDeck == 1:
         drawCards[0] = 0
     else:
         drawCards[0] += 4
     if(lastCard.getColor() == "wild"):
         if "KI" in names[whichPlayer]:
             colorCardsInHand = [0, 0, 0, 0]
             for card in handsOfCards[whichPlayer]:
                 if(card.color.value <= 4):
                     colorCardsInHand[card.color.value] += 1
             bestColor = colorCardsInHand.index(max(colorCardsInHand))
             otherColor = bestColor
         else:
             otherColor = CurrentScreen.showChooseColorScreen(
                 "", handsOfCards[whichPlayer], direction, lastCard, names[whichPlayer], drawCards)
 elif lastCard.getValue() == "chooseColor" and lastCard.getColor() == "wild":
     if "KI" in names[whichPlayer]:
         colorCardsInHand = [0, 0, 0, 0]
         for card in handsOfCards[whichPlayer]:
             if(card.color.value <= 4):
                 colorCardsInHand[card.color.value] += 1
         bestColor = colorCardsInHand.index(max(colorCardsInHand))
         otherColor = bestColor
     else:
         otherColor = CurrentScreen.showChooseColorScreen(
             "", handsOfCards[whichPlayer], direction, lastCard, names[whichPlayer], drawCards)
 elif lastCard.getValue() == "reverse" and lastCard.backInDeck == 0:
     direction *= -1
     drawCards[1] = 0
 elif lastCard.getValue() == "skip" and lastCard.backInDeck == 0:
Beispiel #6
0
         drawCards[0] += 2
 elif lastCard.getValue() == "draw4":
     if lastCard.backInDeck == 1:
         drawCards[0] = 0
     else:
         drawCards[0] += 4
     if(lastCard.getColor() == "wild"):
         if "KI" in names[whichPlayer]:
             colorCardsInHand = [0, 0, 0, 0]
             for card in handsOfCards[whichPlayer]:
                 if(card.color.value <= 4):
                     colorCardsInHand[card.color.value] += 1
             bestColor = colorCardsInHand.index(max(colorCardsInHand))
             otherColor = bestColor
         else:
             otherColor = CurrentScreen.showChooseColorScreen(
                 "", handsOfCards[whichPlayer], direction, lastCard, names[whichPlayer], drawCards)
 elif lastCard.getValue() == "chooseColor" and lastCard.getColor() == "wild":
     if "KI" in names[whichPlayer]:
         colorCardsInHand = [0, 0, 0, 0]
         for card in handsOfCards[whichPlayer]:
             if(card.color.value <= 4):
                 colorCardsInHand[card.color.value] += 1
         bestColor = colorCardsInHand.index(max(colorCardsInHand))
         otherColor = bestColor
     else:
         otherColor = CurrentScreen.showChooseColorScreen(
             "", handsOfCards[whichPlayer], direction, lastCard, names[whichPlayer], drawCards)
 elif lastCard.getValue() == "reverse" and lastCard.backInDeck == 0:
     direction *= -1
     drawCards[1] = 0
 elif lastCard.getValue() == "skip" and lastCard.backInDeck == 0: