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.
Edit- 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?
Thanks in advance.