用Python画骰子

2024-05-16 23:48:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个程序来玩赌场游戏骰子,但是irt不是显示整数输出,而是显示骰子的掷骰子(就像骰子的实际外观一样)。我有实际的游戏性(我用random.randint(1,6模拟掷骰子,但实际的视觉部分却没有实现。我遇到过使用字典解决方案的情况,但我不允许使用它(真是太麻烦了…)

理想情况下,输出应该与第一个类似,但是我一直使用join命令获得第二个输出。在

应该是这样的。。。。在

+-----+       +------+
|     |       |      |
|     |       |      |
+-----+       +------+

但我一直在拿这个。在

^{pr2}$

这是我的密码。我知道这个单子很难读,但这是唯一允许我去做的方法。在

list = ['+-------+' + '\n' + '|       |' + '\n' + '|   *   |' + '\n' + '|       |' +  '\n' + '+-------+' , '+-------+' + '\n' + '| *     |' + '\n' + '|       |' + '\n' + '|    *  |' +  '\n' + '+-------+' , '+-------+' + '\n' + '| *     |' + '\n' + '|   *   |' + '\n' + '|     * |' +  '\n' + '+-------+' , '+-------+' + '\n' + '|       |' + '\n' + '|   *   |' + '\n' + '|       |' +  '\n' + '+-------+']
sep = ''

x = sep.join(list[0:2])

print x

Tags: 程序游戏情况整数random视觉骰子sep
2条回答

我非常喜欢做这件事。=)

base   = '+   -+         +   -+'
sep    = '         '
blank  = '|       |'
left   = '| *     |'
middle = '|   *   |'
right  = '|     * |'
both   = '| *   * |'

dice = [(blank, middle, blank),
        (left,  blank,  right),
        (left,  middle, right),
        (both,  blank,  both ),
        (both,  middle, both ),
        (both,  both,   both )]

def print_dice(a, b):
    print(base)
    print('\n'.join(a + sep + b for a, b in zip(dice[a-1], dice[b-1])))
    print(base)

执行:

^{pr2}$

可以使用多行字符串。在

 print("""
+  -+       +   +
|     |       |      |
|     |       |      |
+  -+       +   +
""")

如果要显示立方体上的点,请查找str.format()方法。在

相关问题 更多 >