Solution: Design Tic-Tac-Toe
Let's solve the Design Tic-Tac-Toe problem using the Knowing What to Track pattern.
Statement
Suppose that two players are playing a tic-tac-toe game on an board. They’re following specific rules to play and win the game:
- A move is guaranteed to be valid if a mark is placed on an empty block.
- No more moves are allowed once a winning condition is reached.
- A player who succeeds in placing of their marks in a horizontal, vertical, or diagonal row wins the game.
Implement a TicTacToe struct, which will be used by two players to play the game and win fairly.
Keep in mind the following functionalities that need to be implemented:
- NewTicTacToe(), initializes an object of
TicTacToe
, allowing the players to play on a board of size . - move(row, col, player) indicates that the player with the ID,
player
, places their mark on the cell (row
,col
). The move is guaranteed to be a valid move. At each move, this function returns the player ID if the current player wins and returns if no one wins.
Constraints:
-
-
player
should be either1
or2
. -
row
,col
-
Every call to
move()
will be with a uniquerow
,col
combination. -
The
move()
function will be called at most times.
Level up your interview prep. Join Educative to access 80+ hands-on prep courses.