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
相关产品推荐
相关产品推荐

