We’ll start by creating a function that just returns a random move from all of the possible moves:Īlthough this algorithm isn’t a very solid chess player, it’s a good starting point, as we can actually play against it: Black plays random moves. Using these libraries will help us focus only on the most interesting task: creating the algorithm that finds the best move. The starting position is used as input and the output is all the possible moves from that position. A visualization of the move generation function.
Based on this, we can calculate all legal moves for a given board state.
The move generation library basically implements all the rules of chess. We’ll use the chess.js library for move generation, and chessboard.js for visualizing the board. Step 1: Move generation and board visualization You can view the final AI algorithm here on GitHub. I’ll demonstrate how each affects the algorithm’s playing style. Let’s explore some basic concepts that will help us create a simple chess AI:Īt each step, we’ll improve our algorithm with one of these time-tested chess-programming techniques. By Lauri Hartikka A step-by-step guide to building a simple chess AI