So I am implementing an intelligent chess agent with the use of reinforcement learning. I intend to use Java.
After reading the master thesis of H.Mannen I decided to use some of the features listed on Appendix B of his master that can be found on page 67.
Description of the features:
Board control: amount of empty squares controlled by a side
Connectivity: amount of connectedness between the pieces of a side
King’s distance to center: amount of squares a king is separated from one of the center squares e4, d4, e5, d5
Total mobility: total sum of squares reachable by a side
Center control: amount of pawns occupying the squares e4, d4, e5, d5.
Isolated pawns: amount of pawns without a pawn of its own side on an adjacent line.
Doubled pawns: amount of pawns, greater than 1, on 1 line.
Passed pawns: amount of pawns without an enemy pawn ahead of it on the same or an adjacent line.
Pawn forks: amount of pawns which attack two superior pieces.
Due to the fact that my project is focused on the AI part of the chess agent I would like to use some preexisting open source Java libraries or functions that automate the proccess of extracting these features from the chessboard.
After searching, the only thing I found was Chesspresso but it comes with no tutorial and I was unable to find one. So I have two questions:
Do you know any good tutorials for Chesspresso?
Are aware of any Java open source library that will help me extract the features I want from the chessboard so I can reduce the programming cost of the project?