【问题标题】:How to print 3 dice on one horizontal line in python如何在python中的一条水平线上打印3个骰子
【发布时间】:2021-02-18 19:22:47
【问题描述】:

我在 python 中有这段代码,代码通过输入 (r) 而不是水平方向打印每个骰子。有谁知道如何编辑此代码以水平打印 3 个骰子?

Screenshot

import random

x = "r"

while x == "r":
  no = random.randint(1,6)
  if no == 1: 
    print("[-----]") 
    print("[     ]") 
    print("[  0  ]") 
    print("[     ]") 
    print("[-----]")
  if no == 2: 
    print("[-----]") 
    print("[ 0   ]") 
    print("[     ]") 
    print("[   0 ]") 
    print("[-----]") 
  if no == 3: 
    print("[-----]") 
    print("[     ]") 
    print("[0 0 0]") 
    print("[     ]") 
    print("[-----]")
  if no == 4: 
    print("[-----]") 
    print("[0   0]") 
    print("[     ]") 
    print("[0   0]") 
    print("[-----]") 
  if no == 5: 
    print("[-----]") 
    print("[0   0]") 
    print("[  0  ]") 
    print("[0   0]") 
    print("[-----]") 
  if no == 6: 
    print("[-----]") 
    print("[0 0 0]") 
    print("[     ]") 
    print("[0 0 0]") 
    print("[-----]")  

  x=input("press r to roll again or e to exit:") 

  print("\n")

【问题讨论】:

    标签: python printing output line dice


    【解决方案1】:

    您可以使用列表来存储骰子字符串。附加到每个掷骰子的字符串。

    这将为每一轮打印连续的骰子:

    import random
    
    def drawdice(nums):
        rows = []  # all dice
        for no in nums:
          if no == 1: 
            rows.append(
            "[-----]" 
            "[     ]" 
            "[  0  ]" 
            "[     ]" 
            "[-----]")
          if no == 2: 
            rows.append(
            "[-----]" 
            "[ 0   ]" 
            "[     ]" 
            "[   0 ]" 
            "[-----]") 
          if no == 3: 
            rows.append(
            "[-----]" 
            "[     ]" 
            "[0 0 0]" 
            "[     ]" 
            "[-----]")
          if no == 4: 
            rows.append(
            "[-----]" 
            "[0   0]" 
            "[     ]" 
            "[0   0]" 
            "[-----]") 
          if no == 5: 
            rows.append(
            "[-----]" 
            "[0   0]" 
            "[  0  ]" 
            "[0   0]" 
            "[-----]") 
          if no == 6: 
            rows.append(
            "[-----]" 
            "[0 0 0]" 
            "[     ]" 
            "[0 0 0]" 
            "[-----]")  
          
        for rx in range(5):  # each row in dice
           for ry in rows:
              print(ry[rx*7:(rx+1)*7], end=' ')  # each dice
           print() # next row
    
    print()
    x = 'r'
    while x != 'e':
      rolls = [random.randint(1,6) for n in range(3)]  # 3 dice
      drawdice(rolls)
      print("")  
      x=input("press enter to roll again or e to exit: ") 
      print("")
    

    输出

    [-----] [-----] [-----]
    [     ] [0   0] [     ]
    [  0  ] [  0  ] [0 0 0]
    [     ] [0   0] [     ]
    [-----] [-----] [-----]
    
    press enter to roll again or e to exit:
    
    [-----] [-----] [-----]
    [     ] [ 0   ] [     ]
    [0 0 0] [     ] [0 0 0]
    [     ] [   0 ] [     ]
    [-----] [-----] [-----]
    
    press enter to roll again or e to exit:
    
    [-----] [-----] [-----]
    [0 0 0] [0   0] [0   0]
    [     ] [     ] [     ]
    [0 0 0] [0   0] [0   0]
    [-----] [-----] [-----]
    

    为了完整起见,您还可以将骰子字符串打包在一个列表中以供显示

    def drawdice(nums):
    
        dice = [
        ["[-----]","[-----]","[-----]","[-----]","[-----]","[-----]"],
        ["[     ]","[ 0   ]","[     ]","[0   0]","[0   0]","[0 0 0]"],
        ["[  0  ]","[     ]","[0 0 0]","[     ]","[  0  ]","[     ]"],
        ["[     ]","[   0 ]","[     ]","[0   0]","[0   0]","[0 0 0]"],
        ["[-----]","[-----]","[-----]","[-----]","[-----]","[-----]"]
        ]
        
        for rx in dice:  # each row in dice
           for no in nums:
              print(rx[no-1], end=' ')
           print()
    

    输出是一样的

    【讨论】:

    • 每掷一次,骰子数就会增加。答案更新为完整输出。
    • 感谢您的回复...现在输出从 1 开始到 ~ dice 那么我如何才能在每行仅获得 3 个 dice?
    • 非常感谢这就是我想要的......你是天才
    • 嗨,迈克,你能帮我编写 Python 脚本吗?我有代码,但如果可能的话,我想以不同的方式编写它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多