2014-11-02 142 views
0

我試圖創建一個播放賭場遊戲擲骰子的程序,但不是顯示整數輸出,而是顯示擲骰子的擲骰子(就像死亡的實際樣子)。我有實際的遊戲玩法(我用random.randint(1,6模擬了擲骰子,但實際的視覺部分讓我難以理解。我使用過字典解決方案,但我不允許使用它(什麼是負載... )用蟒蛇繪製骰子

輸出應該看起來像第一位的,理想的,但我不斷收到使用join命令第二個。

它應該是這樣的....

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

但我不斷收到這個。

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

這是我的代碼。我知道這個清單很難閱讀,但這是我被允許這樣做的唯一方法。

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 

回答

0

您可以使用多行字符串。

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

如果要顯示立方體上的點,請查看str.format()方法。

1

我非常喜歡這樣做。 =)

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) 

執行:

>>> print_dice(2, 5) 
+-------+   +-------+ 
| *  |   | * * | 
|  |   | * | 
|  * |   | * * | 
+-------+   +-------+