Maze Tac Toe

For this solution:, can anyone tell me how the beenthere[][][] array keeps track of the state of the board? How does it track a 3x3 grid that has a M or O or empty?

It represents the grid as a base 3 number. For example, if the grid is as follows: ```
0 1 1
2 0 2
0 1 1

or something, then the base 3 number would be 011202011.

But how does changing a number from 0 to 1 or 2 work? If it is in base 3? I don’t understand they equation they made to update b in the dfs function.

0 equals no move, 1 equals an M, and 2 equals an O.

I also have one question about the solution: For this solution: it says “board state (converted to an integer)” in the code, I think it is b. But I am not sure how the board state is converted to b?

I think b is calculated inside dfs(), but I am not sure how b is calculated. Thanks a lot.

b is calculated as I have said above.
If a board was as follows:


It would be represented as the base-3 integer 012002101.