Book URI: https://leanpub.com/javaai
You can read my book for free online at: https://leanpub.com/javaai/read
This example implements several classic AI search algorithms: depth-first and breadth-first graph search, maze solving, and game-tree search with alpha-beta pruning. Two complete game implementations are included — Tic-Tac-Toe and a simplified Chess engine — that let you play against the computer.
- Java 8+
- Maven 3.6+
# Play Chess against the AI
make chess
# Play Tic-Tac-Toe against the AI
make tictactoe
# Run the graph search demo
make graph
# Run the maze search demo
make mazeAbstractGraphSearch.java— Base class for graph searchDepthFirstSearch.java/BreadthFirstSearch.java— Core algorithmsGraphDepthFirstSearch.java/GraphBreadthFirstSearch.java— Runnable demos
Maze.java— Maze representationAbstractSearchEngine.java— Base search engineMazeDepthFirstSearch.java/MazeBreadthFirstSearch.java— Maze solvers
GameSearch.java— Alpha-beta minimax game searchChess.java/ChessPosition.java/ChessMove.java— Chess implementationTicTacToe.java/TicTacToePosition.java/TicTacToeMove.java— Tic-Tac-Toe implementation
This example is released using the Apache 2 license.
Copyright 2022-2026 Mark Watson. All rights reserved.
You are free to share and adapt this content, with attribution.