Pular para o conteúdo principal

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ário large; 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