Example #1
0
def initHands():
    global talon
    global hands
    hands = deck.dealingOut(nbPlayers, nbStartCards, not isDebug)
    talon = hands[nbPlayers]

    top = talon.getLast()
    talon.remove(top, True)
    pile.insert(top, True)

    hands[0].sort(SortType.SUITPRIORITY, True)

    layouts = [0] * nbPlayers
    for i in range(nbPlayers):
        layouts[i] = RowLayout(handLocations[i], handWidth)
        layouts[i].setRotationAngle(90 * i)
        hands[i].setView(cg, layouts[i])
        hands[i].setTargetArea(TargetArea(pileLocation))
        if i == 0:
            layouts[i].setStepDelay(10)
        hands[i].draw()
    layouts[0].setStepDelay(0)

    for i in range(1, nbPlayers + 1):
        hands[i].setVerso(True)

    talon.setView(cg, StackLayout(talonLocation))
    talon.draw()
    pile.setView(cg, StackLayout(pileLocation))
    pile.draw()

    hands[0].addCardListener(MyHandsCardListener())
    talon.addCardListener(
        MyTalonCardListener())  # Player 0 reclaims card from talon
    setMyMove()
Example #2
0
def initBids():
    for i in range(nbPlayers):
        bids[i] = Hand(deck)
        bids[i].setView(cg, StackLayout(bidLocations[i]))
        bids[i].addCardListener(BitsCardListener())
        hands[i].setTargetArea(TargetArea(bidLocations[i]))
        hands[i].addCardListener(HandsCardListener(i))
Example #3
0
def transferToStock(player):
    for i in range(nbPlayers):
        bids[i].setTargetArea(TargetArea(stockLocations[player]))
        card = bids[i].getLast()
        if card == None:
            continue
        card.setVerso(True)
        bids[i].transferNonBlocking(card, stocks[player], True)
Example #4
0
def transferToStock(player):
    global targetCount
    targetCount = 0
    for i in range(nbPlayers):
        bids[i].setTargetArea(TargetArea(stockLocations[player]))
        card = bids[i].getLast()
        if card == None:
            continue
        card.setVerso(True)
        bids[i].transferNonBlocking(card, stocks[player], True)
    Monitor.putSleep()
    stocks[player].draw()
Example #5
0
def simulateMove(nbPlayer):
    for card in hands[nbPlayer].getCardList():
        if card.getRank() == Rank.BAUER:  # Yes, play it
            removeTrumpActor()
            card.setVerso(False)
            card.transfer(pile, True)
            hands[nbPlayer].sort(SortType.SUITPRIORITY, True)
            if checkOver(nbPlayer):
                return True
            selectTrumpActor(nbPlayer)
            cg.delay(500)
            return True

    # Get list of cards that are allowed
    allowed = []
    if trumpActor == None:  # No trump imposed
        revealed = pile.getLast()
        for card in hands[nbPlayer].getCardList():
            if card.getRank() == revealed.getRank() or card.getSuit(
            ) == revealed.getSuit():
                allowed.append(card)
    else:  # Trump imposed
        for card in hands[nbPlayer].getCardList():
            if card.getSuit() == trump:
                allowed.append(card)
    talon.setTargetArea(TargetArea(handLocations[nbPlayer]))
    if len(allowed) == 0:  # Can't play a card, retrieve one from talon
        card = talon.getLast()
        card.transfer(hands[nbPlayer], True)
        removeTrumpActor()
        talon.draw()
        card.setVerso(True)
        cg.delay(500)
        # Check if we can play it
        top = pile.getLast()
        if card.getRank() == Rank.BAUER or card.getRank() == top.getRank(
        ) or card.getSuit() == top.getSuit():
            card.transfer(pile, True)
            card.setVerso(False)
        if card.getRank() == Rank.BAUER:
            selectTrumpActor(nbPlayer)
        return checkTalon()

    selectedCard = allowed[0]  # Other strategy here
    selectedCard.setVerso(False)
    selectedCard.transfer(pile, True)
    removeTrumpActor()
    hands[nbPlayer].sort(SortType.SUITPRIORITY, True)
    return True
Example #6
0
 def leftDoubleClicked(self, card):
     setMouseTouchEnabled(False)
     card.setVerso(False)
     talon.setTargetArea(TargetArea(handLocations[0]))
     card.transfer(hands[0], False)
     talon.draw()