cli
Interface de Linha de Comando para o Solucionador AlphaCube.
Este módulo fornece o ponto de entrada para o utilitário de linha de comando, permitindo que os usuários resolvam Cubos de Rubik diretamente do terminal. Ele analisa argumentos para seleção de modelo, entrada de embaralhamento, parâmetros de busca e verbosidade, e então invoca o solucionador principal e imprime o resultado.
main
def main()
Utilitário de linha de comando para resolver um Cubo de Rubik usando o AlphaCube.
Argumentos:
--model_id
/-m
(str): Escolha um modelo específico para a resolução (padrão: 'small' em CPU, caso contráriolarge
; outra opção ébase
).--format
/-f
(str): Especifique o formato de entrada ('moves' ou 'stickers').--scramble
/-s
(str): Defina o estado inicial do cubo usando uma sequência de movimentos ou um dicionário JSON em formato de string.--beam_width
/-bw
(int): Defina a largura do feixe (beam width) para a busca (padrão: 1024).--extra_depths
/-ex
(int): Especifique profundidades adicionais para exploração (padrão: 0).--verbose
/-v
: Habilite a saída detalhada (verbose) para depuração e acompanhamento do progresso.
Retorna:
None
Exemplos de Uso:
Sintaxe
alphacube [--model_id MODEL_ID] [--format FORMAT] [--scramble SCRAMBLE]
[--beam_width BEAM_WIDTH] [--extra_depths EXTRA_DEPTHS]
1. Resolver um cubo usando as configurações padrão
alphacube --scramble "R U R' U'"
2. Resolver um cubo com configurações personalizadas
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 um cubo usando uma representação de adesivos (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