Artificial Intelligence

Project: Using minimax, make a tic-tac-toe game with an unbeatable computer opponent.

What is Minimax?

For two-player games, minimax is an algorithm that attempts to choose the best possible move for any given game state. It does this by assigning a score to every possible move, and then choosing the move with the best score. The score is determined by recursively looking multiple moves ahead.


minimax illustration


function score(move, computerTurn):
  if game is over:
    return score of game state
    if computerTurn:
      bestScore = Infinity

      for each possible next move:
        score = score(nextMove, false)
        bestScore = min(score, bestScore)

      return bestScore
      bestScore = -Infinity

      for each possible next move:
        score = score(nextMove, true)
        bestScore = max(score, bestScore)

      return bestScore
Last section Next section