Mark Simcock
Mark Simcock

Reputation: 3

Create a 3x3 grid

I am fairly new to Python and I want to create a printable 3x3 grid to represent a Tic-Tac-Toe board. I just want ideas to tidy it up and make the code look better many thanks

def display_board(board):
    print('   |     |  ')
    print(board[7] + '  |  ' + board[8] + '  |  ' + board[9])
    print('   |     |  ')
    print('---- ---- ----')
    print('   |     |  ')
    print(board[4] + '  |  ' + board[5] + '  |  ' + board[6])
    print('   |     |  ')
    print('---- ---- ----')
    print('   |     |  ')
    print(board[1] + '  |  ' + board[2] + '  |  ' + board[3])
    print('   |     |  ')

This function does create the desired result but I want ideas of how to tidy it up. I've tried for loops but it ends up breaking.

Upvotes: 0

Views: 2621

Answers (2)

mathdugre
mathdugre

Reputation: 98

Similar to Brian's answer however you can set the value for each case within the .format method.

print("""
 {}|{}|{}
 -----
 {}|{}|{}
 -----
 {}|{}|{}
 """.format('x','x','o','o','o','x','o','x','o'))

will result with:

x|x|o
-----
o|o|x
-----
o|x|o

Each {} will be replaced by an argument of the .format method; in order. Check this link for more information.

Upvotes: 0

Brian Zheng
Brian Zheng

Reputation: 449

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

will result in a board like this:

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

Upvotes: 2

Related Questions