This repository contains the implementation of an artificial intelligence for the game Line Up 4 (Connect 4), developed in Java. The AI uses the Minimax algorithm with alpha-beta pruning to make strategic decisions. The project also includes an analysis of the implementation and results, which can be found in the attached PDF file.
- Minimax algorithm with alpha-beta pruning: Optimization in the decision-making process.
- Evaluation functions: Calculation of the heuristic value of the board, state copying, and verification of winning conditions.
- Decision tree generation: The AI builds a tree to explore possible moves and select the optimal one.
- Difficulty levels: The game can be played at different difficulty levels.
- InorderTraversal: Traverses the decision tree to evaluate possible moves.
- CopyBoard: Creates a copy of the current state of the board.
- CalculateValue: Computes the heuristic value of a node by evaluating rows, columns, and diagonals.
- Check: Verifies if there is a winning or defensive move on the board.
- PlayTurn: Executes the AI's move and returns the selected column.
To run the project:
-
Clone this repository:
git clone <repository-URL>
-
Open the project in your preferred IDE.
-
Compile and run the main file to start the game.
A thorough analysis of the AI's performance has been conducted, with details available in the attached PDF file.
Este repositorio contiene la implementación de una inteligencia artificial para el juego Line Up 4 (Conecta 4), desarrollada en Java. La IA utiliza el algoritmo Minimax con poda alfa-beta para tomar decisiones estratégicas. El proyecto también incluye un análisis sobre la implementación y resultados, que puede consultarse en el archivo PDF adjunto.
- Algoritmo Minimax con poda alfa-beta: Optimización en el proceso de toma de decisiones.
- Funciones de evaluación: Cálculo del valor heurístico del tablero, copia de estados y verificación de condiciones de victoria.
- Generación de árboles de decisión: La IA construye un árbol para explorar movimientos posibles y seleccionar el óptimo.
- Niveles de dificultad: El juego puede ejecutarse en diferentes niveles de dificultad.
- Recorrer/Inorden: Recorre el árbol de decisiones para evaluar posibles movimientos.
- CopiaTablero: Realiza una copia del estado actual del tablero.
- CalculaValor: Calcula el valor heurístico de un nodo, evaluando filas, columnas y diagonales.
- Comprueba: Verifica si existe una jugada ganadora o defensiva en el tablero.
- TurnoJugada: Ejecuta el movimiento de la IA y devuelve la columna seleccionada.
Para ejecutar el proyecto:
-
Clona este repositorio:
git clone <URL-del-repositorio>
-
Abre el proyecto en tu IDE preferido.
-
Compila y ejecuta el archivo principal para iniciar el juego.
Se ha realizado un análisis exhaustivo del rendimiento de la IA, cuyos detalles se encuentran en el archivo PDF adjunto.