# Check Tic Tac Toe

## Exercise 26 (and Solution)

This exercise is Part 2 of 4 of the Tic Tac Toe exercise series. The other exercises are: Part 1, Part 3, and Part 4.

As you may have guessed, we are trying to build up to a full tic-tac-toe board. However, this is significantly more than half an hour of coding, so we’re doing it in pieces.

Today, we will simply focus on checking whether someone has WON a game of Tic Tac Toe, not worrying about how the moves were made.

If a game of Tic Tac Toe is represented as a list of lists, like so:

where a `0` means an empty square, a `1` means that player 1 put their token in that space, and a `2` means that player 2 put their token in that space.

Your task this week: given a 3 by 3 list of lists that represents a Tic Tac Toe game board, tell me whether anyone has won, and tell me which player won, if any. A Tic Tac Toe win is 3 in a row - either in a row, a column, or a diagonal. Don’t worry about the case where TWO people have won - assume that in every board there will only be one winner.

Here are some more examples to work with:

## Topics

This exercise is challenging, but doable with only lists (of lists)! Lists of lists are nearly the same as lists, just a bit trickier. Remember that to get the first element in a list called `my_list = [5, 10, 15]`, you index it with a variable like so:

When working with lists of lists, it is the same! Say you have a list `matrix = [[1, 2], [3, 4]]`. Then, take a look at this:

The cool part is that you can use double-indexing to read the elements from our list of lists `matrix`! By indexing `matrix[0][1]` we are saying give me the 1st element of the 0th element of `matrix`, which in this case is `2`.