-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Schakert, a variation of the dutch word for playing chess (schaken), is a chess engine written in Java. Although I am aware of the fact that Java probably isn't the best language to write a chess engine in, it does help me to get a better understanding of the game. While using an Object Oriented (OO), you learn a lot about common misstakes when writing such a complex piece of sofware.
Currently, Schakert is in its infacy. Somewhere below is a list of features that are currently supported / implemented. Also new features which are planned to be implemented are shown.
- Comes with own GUI
- When a chess piece is selected, all the possible legal moves are shown
- Game navitagation buttons enable the user to undo and redo moves
- FEN strings can be exported and loaded
- Detection of stalemate, check and checkmate
- A very basic AI, which will definitely be improved in upcomming commits
- When a pawn promotes, the user is able to select the new type of the pawn
- Perft divide
- Negamax search
- Piece-square tables
If you want to build the application yourself, this is very easy.
- Make sure you have installed Maven
- Make sure you have set your
JAVA_HOME
environment variable to your JDK installation (e.g.C:\Program Files\Java\jdk1.8.0_101
) - Clone the project, extract it to a folder and navigate to this folder with the command prompt
- Now run Maven with the following command in cmd:
mvn jfx:jar
- The jar-file will be placed at
target/jfx/app
Note that the tests are skipped by default.
To actually run the tests, run the following Maven command: mvn install -DskipTests=false
.
This project is correctly setup for the Netbeans IDE. Although any IDE should suffice, you can easily clone the project into your Netbeans IDE and you are ready to go
-
Pawn promotion
-
Check detection
-
Checkmate detection