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?



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.