- Python3
- pip3
- pipenv
Ejecutar
pipenv install
para instalar las dependencias necesarias en el ambiente virtual
pipenv run python main.py [config_file]
Para configurar la ejecución es necesario un archivo de configuración el cual especifique parámetros que necesita el programa para funcionar. A continuación se detalla el formato del archivo de configuración.
logging_level
: nivel de debuggame
: seleccionar el juego -- Options(8-puzzle, fill-zone)
El resto de los settings son diferentes dependiendo de la eleccion de game
Para "fill-zone":
board_settings
: configuración sobre la generación del tablero del fill zonetype
: forma de generar el tablero, define cuales de los siguientes parámetros serán considerados -- Options(static, random)board
: (type = "static") string que describa el tablero, con un numero identificando cada color por ejemplo "4,5,5,3;4,3,0,3;3,4,0,2;1,5,1,0" es una matriz 4x4board_size
: (type = "random") numero entero que representa el lado de la matriz a generarcolor_count
: (type = "random") numero entero que representa la cantidad de colores de la matriz a generar
search_settings
: configuración sobre el algoritmo a utilizar para hacer la búsquedaalgorithm
: algoritmo a utilizar para la búsqueda -- Options(bfs, dfs, A*, greedy) (iddfs se encuentra en su propia branch)heuristic
: heurística a utilizar si el algoritmo lo utiliza -- Options(eccentricity, color_count, combination, node_count)
Para "8-puzzle":
board_settings
: configuración sobre la generación del tablero de 8 puzzleboard
: estado inicial del tablero, por ejemplo "5,7,3;8,2,None;1,6,4"goal
: estado final del tablero, por ejemplo "1,2,3;8,None,4;7,6,5"
search_settings
: configuración sobre el algoritmo a utilizar para hacer la búsquedaalgorithm
: algoritmo a utilizar para la búsqueda -- Options(bfs, dfs, A*, greedy) (iddfs se encuentra en su propia branch)heuristic
: heurística a utilizar si el algoritmo lo utiliza -- Options(manhattan, out_of_place)
De todas formas se incluyen archivos de configuracion de ejemplo para el fill-zone y para el 8-puzzle
pipenv run python plot.py