Python 绘制井字棋盘

新手上路,请多包涵

我正在尝试绘制一个假的 3x3 井字棋盘。我是 python 的新手,我不明白为什么这不起作用。帮助将不胜感激。谢谢!

 def draw():
    for i in range(4):
        board = (" ___ " * 3)

    for i in board:
        ("|    " * 4).join(board)

    print(board)

draw()

编辑:

最终代码:

 def draw():
    board = ''

    for i in range(-1,6):

        if i%2==0:
            board += '|      ' * 4
            board += '\n|      |      |      |'

        else:
            board += ' _____ ' * 3

        board += '\n'
    print (board)

draw()

输出:

  _____  _____  _____
|      |      |      |
|      |      |      |
 _____  _____  _____
|      |      |      |
|      |      |      |
 _____  _____  _____
|      |      |      |
|      |      |      |
 _____  _____  _____

双重编辑:

另一种方式:

 def drawsmall():
    a = (' ___' *  3 )
    b = '   '.join('||||')
    print('\n'.join((a, b, a, b, a, b, a, )))

drawsmall()

输出:

  ___ ___ ___
|   |   |   |
 ___ ___ ___
|   |   |   |
 ___ ___ ___
|   |   |   |
 ___ ___ ___

原文由 R_C 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 584
2 个回答

我发现在一个循环中更容易做到这一点,每次迭代打印一行板。您可以使用 % 运算符检查当前迭代是偶数还是奇数,从而在垂直条和水平条之间切换。

对于字符串,您不需要使用 join —— 附加 += 运算符会更清楚。

 def draw():
    # initialize an empty board
    board = ""

    # there are 5 rows in a standard tic-tac-toe board
    for i in range(5):
        # switch between printing vertical and horizontal bars
        if i%2 == 0:
            board += "|    " * 4
        else:
            board += " --- " * 3
        # don't forget to start a new line after each row using "\n"
        board += "\n"

    print(board)

draw()

输出:

 |    |    |    |
 ---  ---  ---
|    |    |    |
 ---  ---  ---
|    |    |    |

原文由 Tom Sitter 发布,翻译遵循 CC BY-SA 3.0 许可协议

请尝试使用此代码:

 def draw():
    a=('\n _____  _____  _____ ')
    b= ('\n|     |      |      |')
    print(a,b,b,a,b,b,a,b,b,a)
draw()

输出:

  _____  _____  _____
|     |      |      |
|     |      |      |
 _____  _____  _____
|     |      |      |
|     |      |      |
 _____  _____  _____
|     |      |      |
|     |      |      |
 _____  _____  _____

为了更好地查看使用:

 def print_tic_tac_toe():
    print("\n")
    print("\t     |     |")
    print("\t     |     |  ")
    print('\t_____|_____|_____')

    print("\t     |     |")
    print("\t     |     |  ")
    print('\t_____|_____|_____')

    print("\t     |     |")

    print("\t     |     |  ")
    print("\t     |     |")
    print("\n")
print_tic_tac_toe()

输出 :

          |     |
         |     |
    _____|_____|_____
         |     |
         |     |
    _____|_____|_____
         |     |
         |     |
         |     |
​

原文由 Madroxx 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题