Penicillin (PCN) is a Java-based intelligent agent built to take part in the 2020 students' challenge of the Fundamentals of AI course held at the University of Bologna by prof. Paola Mello and prof. Federico Chesani.
The agent is designed to play Tablut with the Ashton rules (learn more here) using Andrea Galassi's server available in this repository.
Penicillin placed 2nd out of 11 teams in the challenge. Congratulations to Team Fritto Misto for winning!
Penicillin also became the "Reaper" record holder, for the highest average captures: 6.31 (the previous record was 5.75).
- The game state is implemented via a BitSet to minimize memory occupation needed to represent the board.
- The Minimax with alpha-beta pruning search algorithm is made concurrent through the use of Futures
- A simple heuristic guarantees a deep exploration of the game tree during the iterative deepening process.
You can download the latest jar file from the GitHub Actions pipeline here.
You can download the latest stable release from the Releases section here.
You will then simply need to run:
java -jar B2P-Penicillin.jar <black|white> <timeout-in-seconds> <server-ip>
The Javadoc documentation is available here
Icons by Flat Icons from Flaticon
Font Pixeboy by Abas Creative from Fontspace