2017-12-02 69 views
0
def box_lines(lines, width): 
    topBottomRow = "┌" + "-" * width + "┐" 
    # bottomRow = "└" + "-" * length + "┘" 
    middle = "\n".join("|" + x.ljust(width) + "|" for x in lines) 
    return "{0}\n{1}\n{0}".format(topBottomRow, middle) 

def split_line(line, width): 
    return [line[i:i + width] for i in range(0, len(line), width)] 

def split_msg(msg, width): 
    lines = msg.split("\n") 
    split_lines = [split_line(line, width) for line in lines] 
    return [item for sublist in split_lines for item in sublist] 

def border_msg(msg, width): 
    return(box_lines(split_msg(msg, width), width)) 

print(border_msg("""♣ 


             ♣""", 20)) 

這就是我不斷收到....如何爲我的二十一點遊戲畫一張撲克牌?

┌--------------------┐ 
|♣     | 
|     | 
|     ♣| 
┌--------------------┐ 

我不知道如何解決它。我正在嘗試爲我的oop blackjack遊戲畫一張卡片。卡片需要更長,並且我在代碼中註釋的底部符號需要用來製作完整的矩形。

+0

應的卡是什麼樣子? – valtron

+0

我只想要一張簡單的紙牌。 –

+0

問題是你沒有使用底行?這就是爲什麼這些小角落被翻轉的原因 - 您也在底部使用頂行。 – dashnick

回答

0

這是你想要實現的東西嗎?

def border_msg(color, height, width): 
    card_content_width = width - 2 
    lines = ['┌' + '-' * card_content_width + '┐'] 
    lines.append('|' + color + ' ' * (card_content_width - 1) + '|') 
    lines.extend(['|' + ' ' * card_content_width + '|' for i in range(height - 4)]) 
    lines.append('|' + ' ' * (card_content_width - 1) + color + '|') 
    lines.append('└' + '-' * card_content_width + '┘') 
    return '\n'.join(lines) 

print(border_msg("♣", 10, 20)) 

上面的代碼給你這樣的卡:

┌------------------┐ 
|♣     | 
|     | 
|     | 
|     | 
|     | 
|     | 
|     | 
|     ♣| 
└------------------┘ 
+0

這正是我所需要的樣子!感謝您的幫助,我真的很感激。 –