Tic-Tac-Toe, sometimes also known as Xs and Os, is a game for two players (X and O) who take turns marking spaces in a 3×3 grid. The player who succeeds in placing three of their respective marks in a horizontal, vertical, or diagonal row (NW-SE and NE-SW) wins the game. Maybe you've solve "Xs and Os Referee" already and this mission will be simpler for you.
In this mission, you will play against various bots, your goal is to never lose. You may only achieve wins or draws. For each game your function is called several times (in the same environment) for each move until the game is over.
For each step your function receives a grid state as a sequence of strings, where "X" is a X-mark, "O" is an O-mark and "." is an empty cell. The second argument is for your mark, either "X" or "O". For each move your function should return the coordinates of the your next mark as a sequence of two numbers - row and column. Rows and columns are numbered starting from zero.
Input: Two arguments. A grid state as a tuple of strings (unicode) and your mark as a string "X" or "O".
Output: The coordinates of your move as a list or a tuple of two integers from 0 to 2.
How it is used: Tic Tac Toe has long been known as a solved game. For this mission, you’re tasked with building a robot to prove this point by winning or tying every game. The concepts represented here will allow you to write a basic game AI which can be improved to play all sorts of classic games.
len(grid) == 3
all(all(ch in "XO." for ch in row) and len(row) == 3 for row in grid)