Skip to main content
 首页 » 编程设计

python之二十一点游戏之显示 ASCII 图形/多行字符串

2025年05月04日44lvdongjie

我是 Python 的新手,目前正在尝试使用 ASCII 图形来表示纸牌来创建基本的二十一点游戏。我将卡片图像放在多行字符串列表中,想法是在需要显示卡片时调用每个图像的特定索引。

但是我无法让它们并排打印,似乎再多的修补也无法让它发挥作用。这是代码:

CARDS = [''' 
 ------- 
|K      | 
|       | 
|       | 
|       | 
|      K| 
 ------- ''', ''' 
 ------- 
|Q      | 
|       | 
|       | 
|       | 
|      Q| 
 ------- ''', '''  
 ------- 
|J      | 
|       | 
|       | 
|       | 
|      J| 
 ------- ''', ''' 
 ------- 
|10     | 
|       | 
|       | 
|       | 
|     10| 
 ------- ''', ''' 
 ------- 
|9      | 
|       | 
|       | 
|       | 
|      9| 
 ------- ''', ''' 
 ------- 
|8      | 
|       | 
|       | 
|       | 
|      8| 
 ------- ''', ''' 
 ------- 
|7      | 
|       | 
|       | 
|       | 
|      7| 
 ------- ''', ''' 
 ------- 
|6      | 
|       | 
|       | 
|       | 
|      6| 
 ------- ''', ''' 
 ------- 
|5      | 
|       | 
|       | 
|       | 
|      5| 
 ------- ''', ''' 
 ------- 
|6      | 
|       | 
|       | 
|       | 
|      6| 
 ------- ''', ''' 
 ------- 
|5      | 
|       | 
|       | 
|       | 
|      5| 
 ------- ''', ''' 
 ------- 
|4      | 
|       | 
|       | 
|       | 
|      4| 
 ------- ''', ''' 
 ------- 
|3      | 
|       | 
|       | 
|       | 
|      3| 
 ------- ''', ''' 
 ------- 
|2      | 
|       | 
|       | 
|       | 
|      2| 
 ------- ''', '''  
 ------- 
|A      | 
|       | 
|       | 
|       | 
|      A| 
 ------- ''' 
] 
 
BLANKCARD = ''' 
 ------- 
|XXXXXXX| 
|XXXXXXX| 
|XXXXXXX| 
|XXXXXXX| 
|XXXXXXX| 
 ------- ''' 
 
 
def displayCards(): 
    print(CARDS[2] + CARDS[14], end='') 
 
displayCards() 

上面的代码打印如下:

 ------- 
|J      | 
|       | 
|       | 
|       | 
|      J| 
 -------  
 ------- 
|A      | 
|       | 
|       | 
|       | 
|      A| 
 -------  

我试过使用 end='' 来摆脱新行,但没有成功。对于如何让卡片并排放置,有人有什么建议吗?

提前致谢!

请您参考如下方法:

有趣的小问题。这是我想出的一个快速解决方案。

类卡片:

def topchar(char): 
    return '|{}      |'.format(char) 
 
def botchar(char): 
    return '|      {}|'.format(char) 
 
def print(char_list): 
    top = ' ------- ' 
    side ='|       |' 
    topout = '' 
    topchar = '' 
    botchar = '' 
    blankside = '' 
    for char in char_list: 
            topout += top + ' ' 
            topchar += Card.topchar(char) + ' ' 
            blankside += side + ' ' 
            botchar += Card.botchar(char) + ' ' 
    print(topout) 
    print(topchar) 
    print(blankside) 
    print(blankside) 
    print(blankside) 
    print(botchar) 
    print(topout)