- Java 14
- Gadle 6.3+
You have been provided with a third-party library ChessLib which calculates the legal moves a knight can make given a position on an board. The library has been used to create a program which moves a knight randomly around a board, given an initial starting position and a total number of moves to make.
Extend this program to set up an square game board containing several different pieces in predefined positions.
For each move of the game, the program will choose a piece at random, and move it to a randomly selected valid position.
You are not allowed to change any of the ChessLib code.
Extend the program as required. Use Object Oriented Design and Modeling appropriately for extensibility.
- Only one piece can occupy any position on the board at a given time.
- All pieces can “jump” any occupied position.
Note: Although the game bears a striking resemblance to Chess, this is entirely coincidental. Do not assume other chess rules apply.
- Knight - Moves as implemented by ChessLib
- Bishop - Moves diagonally, any distance within board boundaries
- Queen – Moves diagonally, horizontally or vertically, any distance within board boundaries
- Implement your business logic into the file
src/main/java/chessGame/ComplexGame.java. If you want to add some auxiliary classes, please insert into the packagechessGame. - Write your unit tests into the folder
src/test/java/chessGame. - If you want to test your application, you can modify
src/main/java/chessGame/App.javato print the output.
Gradle is a build tool for compiling & testing the application. The following functions may be helpful to you.
gradle check: Run all unit tests.
gradle run: Run the main application.
gradle tasks: Print all the supported tasks.