Adversarial search is an algorithm used in game playing to plan ahead when other agents are planning against you. The minimax algorithm determines the optimal strategy by assuming the opponent will make the best counter-move. It searches the game tree to find the move with the highest minimum payoff. α-β pruning improves on minimax by pruning branches that cannot affect the choice of move. State-of-the-art game programs use techniques like precomputed databases, deep search trees, and pattern knowledge bases to defeat human champions at games like checkers, chess, and Othello.