Este proyecto es una simulación de un juego de ajedrez que permite generar piezas de ajedrez, ordenarlas utilizando diferentes algoritmos de ordenamiento y visualizar el tablero en diferentes vistas.
Para compilar el proyecto, asegúrate de tener instalado JDK 20. Luego, puedes compilar el proyecto utilizando el siguiente comando:
javac -d . -sourcepath src src/com/chess/Main.javaEsto compilará todos los archivos .java y colocará los archivos .class en el directorio out.
Para ejecutar el proyecto, utiliza el siguiente comando:
java -cp out com.chess.Main [parametros]El programa acepta los siguientes parámetros:
a: Algoritmo de ordenamiento (mpara Merge Sort,qpara Quick Sort,ipara Insertion Sort,bpara Bubble Sort).t: Tipo de datos (cpara Caracter,npara Numérico).c: Color del tablero (bpara Blancas,npara Negras).r: Número de piezas (1, 2, 4, 6, 8, 10, 16).s: Intervalo en milisegundos entre cada operación de ordenamiento (de 100 a 1000).
java -cp . com.chess.Main a=i t=c c=b r=16 s=100Este comando ejecutará el programa con los siguientes parámetros:
- Algoritmo de ordenamiento: Insertion Sort
- Tipo de datos: Caracter
- Color del tablero: Negras
- Número de piezas: 4
- Intervalo: 100 milisegundos
Main.java: Punto de entrada del programa.ChessGame.java: Representa un juego de ajedrez con varias configuraciones.ChessBoard.java: Representa un tablero de ajedrez con piezas y una vista.Piece.java: Clase abstracta que representa una pieza de ajedrez.PieceGenerator.java: Genera piezas de ajedrez aleatorias.YArgs.java: Utilidad para dividir los argumentos de la línea de comandos.WhiteBoardView.javayBlackBoardView.java: Implementaciones de la interfazBoardViewpara mostrar el tablero.
BubbleSort.java: Implementa el algoritmo de ordenamiento Bubble Sort.InsertionSort.java: Implementa el algoritmo de ordenamiento Insertion Sort.QuickSort.java: Implementa el algoritmo de ordenamiento Quick Sort.
AlgorithmTypeError.java: Excepción lanzada cuando se especifica un algoritmo inválido.ColorTypeError.java: Excepción lanzada cuando se especifica un color inválido.DataTypeError.java: Excepción lanzada cuando se especifica un tipo de datos inválido.NumbersTypesErrors.java: Excepción lanzada cuando se especifica un número inválido.
BoardView.java: Interfaz para mostrar el tablero de ajedrez.PieceFactory.java: Interfaz para crear piezas de ajedrez.SortingStrategy.java: Interfaz para implementar diferentes estrategias de ordenamiento.