Este é um programa em que ele lê da entrada padrão um mapa do puzzle lights-out no seguinte estilo:
DLD
LdL
DLD
Representando o seguinte mapa do jogo:
E o programa dirá as respectivas células que devem ser clicadas para resolver o puzzle com base no plano gerado por um planejador PDDL, nesse caso o plano terá apenas um passo e será (1, 1).
No mapa D representa uma célula desligada, d uma célula desligada com uma lâmpada quebrada, L uma célula ligada, l uma célula ligada com uma lâmpada quebrada.
No jogo, ao clicar em uma célula desligada ou ligada, esta e as adjascentes serão invertidas. No caso de clicar em uma quebrada as adjascentes serão invertidas mas a clicada não.
O puzzle esta resolvido quando todas as células estão desligadas.
Para funcionar é necessário um planejador PDDL, e nesse caso como extraio cada passo do plano gerado, só funcionará com o planejador Madagascar. Porém, ajustes na leitura do plano podem ser feitos para se adaptar a outro planejador.
Também é necessário especificar o caminho correspondente do planejador no código.
Para executar o programa também é necessário compilá-lo em um .exe com um compilador C++ após as mudanças acima terem sido realizadas.
Para executar o validador é necessário remover as linhas em que os arquivos problema e plano são removidos, pois ele faz a validação do plano gerado a partir desses dois arquivos.
Está ajustado para resolver os planos de forma rápida, assim não necessariamente teremos planos ótimos (menor quantidade de passos possÃvel) mas em compensação a geração dos planos não deve demorar muito com o crescimento da complexidade dos mapas.
Feito por: Yogi Nam de Souza Barbosa