Exemple #1
0
    def lead(self, player, card):
        p = player
        name = p.name
        if not p.lead(card):
            return

        emit('broadcast', {
            'type': 'lead',
            'name': name,
            'card': card.to_str(),
            'remainCardsNum': len(p.cards)
        },
             broadcast=True)

        if not p.is_ai:
            emit('push_cards', {'data': Card.cards_to_str(p.cards)})

        emit(
            'broadcast',
            {
                # 'name': '轮到 {} 出牌'.format(table.can_do_player_name()),
                'name': table.can_do_player_name(),
                'type': 'next'
            },
            broadcast=True)

        log(name, 'lead', card, 'finish', Card.cards_to_str(p.cards))
        uno_serv.table.check_ai()
Exemple #2
0
    def draw(self, player):
        p = player
        name = p.name
        if not p.draw():
            return

        emit('broadcast', {
            'type': 'draw',
            'name': name,
            'remainCardsNum': len(p.cards)
        },
             broadcast=True)

        if not player.is_ai:
            emit('push_cards', {'data': Card.cards_to_str(p.cards)})

        emit(
            'broadcast',
            {
                # 'name': '轮到 {} 出牌'.format(table.can_do_player_name()),
                'name': self.table.can_do_player_name(),
                'type': 'next'
            },
            broadcast=True)

        self.table.check_ai()
Exemple #3
0
    def connect(msg):
        name = msg['name']
        table.add_player(name)
        log(name, 'join in')

        emit('broadcast', {
            'type': 'join',
            'name': name,
            'players': list(table.players.keys())
        },
             broadcast=True)

        # cards = [c.to_str() for c in table.players[name].cards]
        emit('push_cards',
             {'data': Card.cards_to_str(table.players[name].cards)})
        emit(
            'broadcast',
            {
                # 'name': '轮到 {} 出牌'.format(table.can_do_player_name()),
                'name': table.can_do_player_name(),
                'type': 'next'
            },
            broadcast=True)
        uno_serv.table.check_ai()