Skip to content

Intelligent Steal-Split Game project for the course "Programación de Sistemas Inteligentes" in the Telecommunications Engineering Degree at the Universidad de Vigo (2024 - 2025)

License

Notifications You must be signed in to change notification settings

Pirito10/StealSplitTournament-PSI-UVigo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Steal-Split Tournament

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).

About The Project

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.

How To Run

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.

Compilation

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.

Execution

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[;...]]]'

Agents

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

Example

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'

About The Code

Refer to Specifications.pdf for an in-depth explanation of the project, the game mechanics, the communication between agents, the tournament structure, and more.

About

Intelligent Steal-Split Game project for the course "Programación de Sistemas Inteligentes" in the Telecommunications Engineering Degree at the Universidad de Vigo (2024 - 2025)

Topics

Resources

License

Stars

Watchers

Forks

Languages