Steal-Split Tournament is an Intelligent Steal-Split Game developed as part of the course "Programación de Sistemas Inteligentes" in the Telecommunications Engineering Degree at the Universidad de Vigo (2024 - 2025).
This project implements a multi-agent simulation of a Steal-Split tournament, where autonomous agents compete by making strategic financial decisions. It integrates AI techniques such as Q-Learning and Self-Organizing Maps, alongside the fundamentals of GUI development for user interaction.
The project features:
- Multi-agent system using JADE.
- Steal-Split decision-making framework.
- Adaptative strategies based on past interactions.
- Structured tournament format with real-time performance tracking.
- User-friendly interface for easy interaction and visualization.
The following instructions are for Windows only. If you are using another operating system, you will need to download the appropiate JavaFX version for your system and adjust the compilation and execution commands accordingly.
Make sure you have a Java JDK installed on your system. Then compile all Java classes and generate the .class
files with:
javac -p lib/javafx/lib --add-modules javafx.controls,javafx.fxml -cp 'lib/jade.jar;lib/javafx/lib' -d bin src/*.java src/agents/*.java
This command creates the compiled files inside the bin/
directory.
Once compiled, you can run the system with:
java -p lib/javafx/lib --add-modules javafx.controls,javafx.fxml -cp 'lib/jade.jar;bin;src/resources' jade.Boot -agents 'MainAgent:MainAgent[;Agent1:agents.Agent1Class[;Agent2:agents.Agent2Class[;...]]]'
Option | Description | Example |
---|---|---|
RandomAgent |
Selects actions randomly without a predefined strategy | Agent1:agents.RandomAgent |
RL_Agent |
Uses reinforcement learning to adapt based on past interactions | Agent2:agents.RL_Agent |
NN_Agent |
Implements a neural network-based decision model for complex strategies | Agent3:agents.NN_Agent |
java -p lib/javafx/lib --add-modules javafx.controls,javafx.fxml -cp 'lib/jade.jar;bin;src/resources' jade.Boot -agents 'MainAgent:MainAgent;Agent1:agents.RandomAgent;Agent2:agents.RL_Agent;Agent3:agents.NN_Agent'
Refer to Specifications.pdf
for an in-depth explanation of the project, the game mechanics, the communication between agents, the tournament structure, and more.