You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现Blackjack游戏:如何让扑克牌在同一行打印?

解决多张扑克牌同行打印的问题

你当前的代码会逐行打印单张牌的完整结构,导致每张牌独占一行。要实现多张牌并排显示,核心思路是把所有牌的同一行内容拼接后再打印,具体实现如下:

步骤1:修改Card类,返回牌的行数据

不再直接打印牌,而是将牌的7行结构以列表形式返回,方便后续拼接:

class Card:
    def __init__(self, value, suit):
        self.value = value
        self.suit = suit

    # 替代原来的show方法,返回牌的每一行字符串
    def get_card_lines(self):
        return [
            '┌───────┐',
            f'| {self.value:<2}    |',
            '|       |',
            f'|   {self.suit}   |',
            '|       |',
            f'|    {self.value:>2} |',
            '└───────┘'
        ]

步骤2:编写批量显示函数

遍历每一行索引,把所有牌的对应行拼接成一行字符串后打印:

def show_multiple_cards(cards):
    # 获取每张牌的行数据列表
    all_card_lines = [card.get_card_lines() for card in cards]
    # 逐行拼接并打印
    for line_index in range(7):
        # 把所有牌的第line_index行拼在一起
        combined_line = ''.join([card_lines[line_index] for card_lines in all_card_lines])
        print(combined_line)

测试示例

创建几张牌并调用显示函数:

# 创建测试牌
cards = [Card('A', '♠'), Card('10', '♥'), Card('K', '♦')]
# 批量显示
show_multiple_cards(cards)

运行后会得到并排的扑克牌效果,所有牌的顶部边框在同一行,中间图案行对齐,底部边框也在同一行。

内容的提问来源于stack exchange,提问作者Raccoons1710

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 05:35:22