Chess2u
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Chess2u

# Creating a chess engine from scratch! (youtube)

- Chess Tutorial 1 (Intro)
An intro to a new series of tutorials on how to write and understand your very own chess engine.

- Chess Tutorial 2 (Graphics)
An intro into multi-class programs and graphics

- Chess Tutorial 3 (Graphics)

An intro into interacting with java through the mouse

- Chess Tutorial 4 (Graphics)
An intro into using images in java

- Chess Tutorial 5 (Board Representation)
Representing the board as an array and why I represent it that way.

- Chess Tutorial 6 (Move Generation)
Outlining how to find possible moves for a given board.

- Chess Tutorial 7 (King Movement)
Determining the possible moves that king can make in any situation.

- Chess Tutorial 8 (Queen Movement)
Determining the possible moves that queen can make in any situation.

- Chess Tutorial 9 (Bishop & Rook Movement)
Determining the possible moves that the bishop and rook can make in any situation.

- Chess Tutorial 10 (Knight Movement)
Determining the possible moves that the knight can make in any situation.

- Chess Tutorial 11 (King Safety Part A)
Determining if the king is safe in any situation.

- Chess Tutorial 12 (King Safety Part B)
Determining if the king is safe in any situation.

- Chess Tutorial 13 (Pawn Movement Part A)
Determining the possible moves that the pawn can make in any situation.

- Chess Tutorial 14 (Pawn Movement Part B)
Determining the possible moves that the pawn can make in any situation.

- Chess Tutorial 15 (Making and Undoing Moves)
Moving pieces on the board based on the list of valid moves.

- Chess Tutorial 16 (Minimax and Alpha-Beta Pruning)
A brief discussion of searching for the best move using minimax and alpha-beta pruning.

- Chess Tutorial 17 (Alpha-Beta Algorithm Part A)
Creating a simple, unified alpha-beta algorithm.

- Chess Tutorial 18 (Alpha-Beta Algorithm Part B)
Creating a simple, unified alpha-beta algorithm.

- Chess Tutorial 19 (Verifying an Alpha-Beta Algorithm works Correctly)
Testing if our alpha-beta algorithm works correctly. This sort of test can be applied to many other algorithms as well.

- Chess Tutorial 20 (Flipping the Board Around & Debugging)
Rotating the board around as well as fixing a couple of loose ends in other methods. The tutorial ends with a demonstration of the engine thinking of a move 4-ply deep. (We have not yet programmed the rating method, so the thinking process is not ideal yet.)

- Chess Tutorial 21 (Displaying Chess Game Graphically)
Displaying the chess board and pieces graphically in real time.

- Chess Tutorial 22 (Interacting with the Mouse)
Moving chess pieces based on mouse movement (click and drag).

- Chess Tutorial 23 (Computer Response Move & Who Plays White Option)
Getting program to make a response move after the user makes a move on the board. Also created an option for who should play as white (human or computer).

- Chess Tutorial 24 (An Intro to Static Evaluation)
An overview of the weaknesses of computer ratings systems, as well as an outline of several key rating methods/categories.

- Chess Tutorial 25 (Evaluating Material)
Accounting for material in the evaluation method (in centipawns).

- Chess Tutorial 26 (Evaluating General Positional Tactics)
Accounting for generic chess positional tactics and rules of thumb.

- Chess Tutorial 27 (Evaluating Checkmate, Stalemate, & Movability)
Evaluating Checkmate, Stalemate, and closed positions. Without this method, the engine would not try to put the opponent in such a situation, and it would not try to avoid such a situation. It is this method which lets our engine understand that checkmate is the ultimate goal (as opposed to just gaining material).

- Chess Tutorial 28 (Evaluating Attacks)
Evaluating attacks based on piece-value. Allows for a more aggressive game-play.
- Chess Tutorial 29 (Sorting Moves to Increase Alpha-Beta Pruning Speed)
Sorting the order of moves searched in order to maximize the effectiveness of alpha-beta pruning. On my computer, it increases the search time from about 6.5 seconds to about 1.2 (~540% speed increase).