python-3.x - 打印 ASCII 艺术彼此相邻

标签 python-3.x ascii ascii-art

我正在尝试为一个人创建一个 Yahtzee 游戏,使用随机数作为骰子等

我已经这样做了,但我想“漂亮”游戏,所以我想使用 ASCII 骰子,而不是一个挨一个地输出五个随机整数。

这是我目前测试这个的尝试

def DiceFive():
    print ("-----")
    print ("|o o|")
    print ("| o |")
    print ("|o o|")
    print ("-----", end="")

def DiceSix():
    print ("-----")
    print ("|o o|")
    print ("|o o|")
    print ("|o o|")
    print ("-----", end="")

DiceSix()
DiceFive()

然而,这输出奇怪,
-----
|o o|
|o o|
|o o|
----------
|o o|
| o |
|o o|
-----

我的目标是让它看起来像这样
----- -----
|o o| |o o|
|o o| | o |
|o o| |o o|
----- -----

有什么建议?

最佳答案

我将骰子放入包含骰子行(字符串)的元组列表中。然后你可以迭代骰子的高度(在这种情况下为 5),所以你从索引 0 开始,然后迭代滚动的骰子并打印第一个骰子的第一行,然后是第二个骰子的第一行和很快。

DICE = [
    ("-----",
     "|   |",
     "| o |",
     "|   |",
     "-----",),
    ("-----",
     "|o  |",
     "|   |",
     "|  o|",
     "-----",),  # etc.
    ]


rolled_dice = (1, 2)

for i in range(5):  # 5 is the height of the die.
    for die in rolled_dice:
        # Now get the corresponding die in the DICE list
        # and print its first line, then the first line of
        # the next die and so on.
        print(DICE[die-1][i], end=' ')
    print()

关于python-3.x - 打印 ASCII 艺术彼此相邻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47014403/

相关文章:

python - 如何在python中的csv文件中编写列表列表

python - 如何忽略 `or` 语句中 `if` 的错误值

python - 编写与python2和python3兼容的代码是使用 __future__ 还是 future 更可取?

php - 为什么这个正则表达式在 Ubuntu 上传递,但在 Mac OS X 上不传递

ruby-on-rails - 防止 ActionMailer 去除纯邮件中的重复空格

macos - Mac 上的 Python 3 setuptools

javascript - JavaScript 中的动态与直接八进制字符表示

c++ - 使用 C++(无 winapi)将 UTF-8 字符转换为最接近的等效 ASCII 字符

ascii-art - 如何生成文本 ASCII 艺术

java - 什么是 ASCII 艺术文档的流行 JavaDoc 实践?