Advanced · 2D lists · 182 of 264
Who won?
Look at a finished tic-tac-toe board and say who won: X, O, or draw if nobody has three in a row (row, column or diagonal).
Input: three lines of three characters (X, O or .). Output: X, O or draw
Examples
Input
XXX OO. ...
Output
X
Input
XO. XO. .O.
Output
O
Input
XOX XOO OXX
Output
draw
2 more tests check other inputs when you press Check.
Stuck? The idea behind 2d lists
A list of lists is a grid: grid[row][col]. Read one row per line, each turned into numbers.
Loop over rows, then over the columns inside each row. zip(*grid) turns rows into columns.
grid = [[1, 2, 3], [4, 5, 6]]
for row in grid:
print(*row)
print(grid[1][2]) # 6Watch for: [[0] * 3] * 2 makes two names for the same row: changing one changes both. Build rows with a comprehension: [[0] * 3 for _ in range(2)].