cli
Interfaz de Línea de Comandos para el Solucionador AlphaCube.
Este módulo proporciona el punto de entrada para la utilidad de línea de comandos, permitiendo a los usuarios resolver cubos de Rubik directamente desde la terminal. Analiza los argumentos para la selección del modelo, la entrada del desorden (scramble), los parámetros de búsqueda y la verbosidad, y luego invoca al solucionador principal e imprime el resultado.
main
def main()
Utilidad de línea de comandos para resolver un cubo de Rubik usando AlphaCube.
Argumentos:
--model_id
/-m
(str): Elige un modelo específico para la resolución (por defecto: 'small' en CPU, de lo contrariolarge
; otra opción esbase
).--format
/-f
(str): Especifica el formato de entrada ('moves' o 'stickers').--scramble
/-s
(str): Define el estado inicial del cubo usando una secuencia de movimientos o un diccionario JSON en formato de cadena.--beam_width
/-bw
(int): Establece el ancho del haz (beam width) para la búsqueda (por defecto: 1024).--extra_depths
/-ex
(int): Especifica profundidades adicionales para la exploración (por defecto: 0).--verbose
/-v
: Habilita la salida detallada para depuración y seguimiento del progreso.
Devuelve:
None
Ejemplos de Uso:
Sintaxis
alphacube [--model_id MODEL_ID] [--format FORMAT] [--scramble SCRAMBLE]
[--beam_width BEAM_WIDTH] [--extra_depths EXTRA_DEPTHS]
1. Resolver un cubo usando la configuración por defecto
alphacube --scramble "R U R' U'"
2. Resolver un cubo con configuración personalizada
alphacube --model_id large --beam_width 128 --extra_depths 2 \
--scramble "R U2 F' R2 B R' U' L B2 D' U2 R F L"
3. Resolver un cubo usando una representación de pegatinas (stickers)
alphacube --format stickers \
--scramble '{ \
"U": [0, 0, 5, 5, 0, 5, 5, 4, 0], \
"D": [1, 3, 3, 4, 1, 1, 4, 1, 3], \
"L": [4, 5, 1, 0, 2, 2, 0, 1, 4], \
"R": [5, 2, 0, 2, 3, 3, 2, 0, 2], \
"F": [4, 3, 2, 4, 5, 1, 1, 4, 3], \
"B": [1, 5, 5, 0, 4, 3, 3, 2, 2] \
}' \
--beam_width 64