gpt4 book ai didi

python - 如何并排打印我的 ASCII 卡?

转载 作者:行者123 更新时间:2023-12-02 18:27:21 26 4
gpt4 key购买 nike

我使用 python 制作了一个简单的二十一点游戏。我制作了游戏的其余部分,但我正在努力放入 ASCII 卡,所以这只是代码的一小部分。我尝试将 * len(phand) 放在附加行的末尾。虽然这确实给了我并排的多张卡片,但它似乎不允许我编辑它们。

#Phand is the hand you draw so it could be any combination of cards

phand = ["2 of Hearts", "King of Diamonds", "Ace of Clubs"]
print(phand)

for xx in range(0, len(phand)):
pcarddisplay = []
pcarddisplay.append("┌─────────┐")
pcarddisplay.append("│{}{}. . .│")
pcarddisplay.append("│. . . . .│")
pcarddisplay.append("│. . . . .│")
pcarddisplay.append("│. . {}. .│")
pcarddisplay.append("│. . . . .│")
pcarddisplay.append("│. . . . .│")
pcarddisplay.append("│. . .{}{}│")
pcarddisplay.append("└─────────┘")

x = ("│.", phand[xx][:1], ". . . .│")
pcarddisplay[1] = "".join(x)

x = ("│. . . .", phand[xx][:1], ".│")
pcarddisplay[7] = "".join(x)

if "Diamonds" in phand[xx]:
pcarddisplay[4] = "│. . ♦ . .│"
if "Clubs" in phand[xx]:
pcarddisplay[4] = "│. . ♣ . .│"
if "Hearts" in phand[xx]:
pcarddisplay[4] = "│. . ♥ . .│"
if "Spades" in phand[xx]:
pcarddisplay[4] = "│. . ♠ . .│"

print("\n".join(pcarddisplay))

输出:

['2 of Hearts', 'King of Diamonds', 'Ace of Clubs']
┌─────────┐
│.2. . . .│
│. . . . .│
│. . . . .│
│. . ♥ . .│
│. . . . .│
│. . . . .│
│. . . .2.│
└─────────┘
┌─────────┐
│.K. . . .│
│. . . . .│
│. . . . .│
│. . ♦ . .│
│. . . . .│
│. . . . .│
│. . . .K.│
└─────────┘
┌─────────┐
│.A. . . .│
│. . . . .│
│. . . . .│
│. . ♣ . .│
│. . . . .│
│. . . . .│
│. . . .A.│
└─────────┘

我怎样才能将这些并排打印出来?

最佳答案

您必须更改代码才能生成一张卡片(此处为 mk_card 函数)。

然后生成所有卡片 block ,并使用 zipjoin 的组合来生成以下行:

phand = ["2 of Hearts", "King of Diamonds", "Ace of Clubs"]

def mk_card(s):
pcarddisplay = []
pcarddisplay.append("┌─────────┐")
pcarddisplay.append("│{}{}. . .│")
pcarddisplay.append("│. . . . .│")
pcarddisplay.append("│. . . . .│")
pcarddisplay.append("│. . {}. .│")
pcarddisplay.append("│. . . . .│")
pcarddisplay.append("│. . . . .│")
pcarddisplay.append("│. . .{}{}│")
pcarddisplay.append("└─────────┘")

x = ("│.", s[:1], ". . . .│")
pcarddisplay[1] = "".join(x)

x = ("│. . . .", s[:1], ".│")
pcarddisplay[7] = "".join(x)

if "Diamonds" in s:
pcarddisplay[4] = "│. . ♦ . .│"
if "Clubs" in s:
pcarddisplay[4] = "│. . ♣ . .│"
if "Hearts" in s:
pcarddisplay[4] = "│. . ♥ . .│"
if "Spades" in s:
pcarddisplay[4] = "│. . ♠ . .│"

return pcarddisplay

print('\n'.join(map(' '.join, zip(*(mk_card(c) for c in phand)))))

输出:

┌─────────┐  ┌─────────┐  ┌─────────┐
│.2. . . .│ │.K. . . .│ │.A. . . .│
│. . . . .│ │. . . . .│ │. . . . .│
│. . . . .│ │. . . . .│ │. . . . .│
│. . ♥ . .│ │. . ♦ . .│ │. . ♣ . .│
│. . . . .│ │. . . . .│ │. . . . .│
│. . . . .│ │. . . . .│ │. . . . .│
│. . . .2.│ │. . . .K.│ │. . . .A.│
└─────────┘ └─────────┘ └─────────┘

关于python - 如何并排打印我的 ASCII 卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69946172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com