Por Pedro de lima Freire


Chess Auto Play online!
Jogue online contra outros oponentes que usam cheat (trapaça) também, de forma rápida, em jogos diversos!

Este programa utiliza engines de xadrez para calcular as melhores jogadas.
Engine ou Chess Engine ou Engine de xadrez é um aplicativo em modo console que , baseado na posição das peças no tabuleiro, calcula a melhor Jogada. O único objetivo dessas engines é esse.
Das mais conhecidas temos a engine stockfish e a houdini.

Você pode usar qualquer uma delas.
A engine deve obedecer o protocolo UCI. Caso a engine não trabalhe nesse protocolo, o programa não funcionará.

O requisito necessário é ter o internet explorer. dependendo do site que você jogue, deverá ter pelo menos  internet explorer 9 ou 11.
O programa , por enquanto, só funciona no site lichess, portanto , é preciso ter o internet explorer 11 instalado. Para instalar o IE11 no windows 7, você precisa instalar o service pack 1 primeiro. no Windows 8 você pode instalar sem problemas e no windows 10, já vem pre instalado. no Windows XP e inferiores não é possivel.

Como instalar.
Baixe o programa e o execute.

Aguarde até o fim.
Abra o Internet Explorer.
Na primeira vez poderá aparecer um aviso se você permite que a extensão plugin.pipecheck de pedro de lima freire pode ser ativada ou não.


 clique em habilitar. Depois feche o internet explorer e o abra de novo.
Caso não apareça esse aviso, vá em opções;

 depois gerenciar complementos;

 e ative o plugin plugin.pipecheck.

feche o internet explorer e o abra de novo.

Depois abra o site lichess.org no internet explorer.
deverá aparecer a tela do programa.



Carregando a Engine de Xadrez (Chess Engine)
Antes vamos ver como funciona as engines, caso você já saiba, pule para a próxima etapa.
As engines são sempre arquivos executáveis.
Vem acompanhada a engine Stockfish 32 e 64 bit
Para se certificar que o arquivo executável é uma engine, abra-a normalmente. Porém precisa-se tomar muito cuidado ao baixar uma engine de outro autor, pois pra saber se é engine de xadrez ou não precisa-se abri-la. Se for um vírus, será instalado em seu computador, a não ser que  você tenha um anti virus.

Essas 2 acompanham o instalador.
Vamos primeiramente abrir-las para ver se são arquivos de engine. Dê o clique duplo em uma.

Todos os protocolos de engine de xadrez especificam o funcionamento em console utilizando de streams em pipe não nomeado como stdin e stdout. O executável em console (modelo D.O.S) abre no cmd ou prompt de comando. Caso seja aberto um programa com GUI certamente não é uma engine.
Agora que já sabemos que é um arquivo de engine, basta apenas saber se suporta o protoco UCI.
digite uci e aperte ENTER

Deverá ser retornado uciok o que significa uma engine que opera no protocolo uci.
caso seja retornado command invalid , command not found , command error ou algo do tipo temos uma engine de xadrez que não opera em protocolo uci.
Sabendo disto você pode procurar por outras engines na internet para usar. Precisa localizar  o executável que pode estar em pasta raiz ou em pasta bin , por exemplo.

Ok, agora vamos abrir a engine em nosso programa.

Clique no ícone da pasta e escolha o executável da engine.


Procure e escolha o executável da uci.

Notem que a área preta é a área de informações da UCI. É possivel inclusive que você envie informações manualmente, bastando escrever algo e dar enter, como por exemplo escrever o comando uci.


Pronto, o sistema está pronto para uso.
Você pode alterar a engine a qualquer momento, mesmo no meio do jogo.
É comum que as engines congelem em certo momento. Caso a engine congele, o sistema tentará abri-la novamente. Quando a engine congela, frequentemente é informado uma mensagem do windows afirmando que o aplicativo (a engine) parou de funcionar. Se o sistema não recarregar a engine, você pode carregar manualmente.

Entre em um jogo contra alguém. o programa inicia a jogada caso ele seja o branco ou aguarda o branco jogar.

Você pode pausar o programa e jogar manualmente. quando quiser que o sistema assuma, basta despausar.


Botão Pause - É o com a seta vermelha. clique para pausar \ despausar.
movetime - É um dos parametros do protoco UCI. usado para fazer a uci fazer um cálculo e retornar a resposta dentro do tempo determinado em milisegundos. É enviado à UCI o comando go movetime 100, ou o valor que estiver alí. O tempo máximo que o programa aceita é  30000 milisegundos. caso voce coloque um número  menor que 1 e maior que 30000 o programa corrigirá.

depth - Outro parametro do protoco UCI. representa a profundidade de cálculo. Uma média humana está entre 5 e 6. valores abaixo disto significa cálculos "estúpidos" e acima disto cálculos "inteligentes". o valor mínimo é 1 e o máximo é 30. O comando enviado à engine é go depth <número>
Obviamente você deve escolher um ou outro.

o comando go infinte não é usado pelo programa. caso você escreva manualmente este comando, a palavra infinte será trocada por "movetime".

"Play Now" Força o programa a mexer a peça realizando um novo cálculo. Existem situações em que o programa não consegue mexer a peça. São implicações impostas pelo sistema Windows. Abrir uma nova aba no mesmo internet explorer é uma delas. Mais abaixo detalharei mais sobre as possíveis falhas.

botão "refresh". é o botão azul. O programa é capaz de reconhecer um novo adversário, calculando um novo jogo. Porém se o jogo acaba e você vai jogar novamente contra o mesmo adversário, o programa não verifica essa situação automaticamente. É preciso clicar nesse botão para fazer o programa reconhecer se é um novo jogo ou não.

POSSÍVEIS FALHAS
As falhas ocasionarão na falha do programa mexer a peça.
O sistema não funciona em modo de rastreamento OCR para verificar a posição das peças, como ocorre em outros programas. No rastreamento de imagens, o programa analisa todos os pixels na tela para reconhecer as peças. Isso leva muito tempo, mas dá a vantagem de permitir o programa jogar em qualquer site, desde que o tamanho das peças sejam as mesma. Ocorre muitas falhas pois determinados pixels podem ser sobrepostos por qualquer coisa.

Em nosso sistema as peças são rastreadas em modo texto, dentro do html. Qualquer site operando em html5 , possui métodos modernos de carregar o tabuleiro, mesclando imagens com comandos em javascript. o nosso sistema intercepta o tabuleiro e a posição das peças em modo texto. Isso permite rastreamento instântaneo. Por operar injetado em forma de plugin dentro de um navegador, não há problema de você minimizar o navegador para trabalhar em outras janelas.
Inclusive você pode abrir outro internet explorer.

Porém abrir uma outra aba no mesmo internet explorer que está o aplicativo rodando, faz com que o programa não consiga mover a peça.

Algumas vezes é possível ver o programa tentando clicar em peças em não conseguindo movê-las. geralmente num intervalo de 2 ou 3 tentativas por segundo. Caso você veja que está demorando muito, faça o movimento manualmente da peça.

Em algumas ocasiões, o programa por um erro de interpretação de quem é a vez, pré seleciona uma jogada, ou seja , ele faz uma jogada sem ser sua vez, o que ocasiona o site a interpetrar que você pré selecionou uma jogada.

Nesse exemplo da foto, o programa selecionou cavalo de b8 para c6 como melhor jogada, porém sem ser sua vez. No momento que o seu oponente fizer a jogada, o cavalo se move automaticamente, independentemente do que o oponente jogou antes. Isso significa que o cavalo pode ter se movido para ser entregue de graça ao oponente. Para cancelar isso, você deve agir antes do seu oponente fizer a jogada. Basta clicar em qualquer ponto no tabuleiro, isso cancela o pré movimento, e o programa fará a jogada normalmente em sua vez.

Programa com a imagem distorcida.
Dependendo da sua placa de vídeo, o programa pode ficar com a imagem estranha no momento que você move o programa pelo internet explorer.
Note que o programa dentro do Internet Explorer ficou com a imagem bugada, situação quando o windows não atualiza a imagem de um programa corretamente. Para corrigir isto, basta minimizar ou restaurar o internet Explorer.

Especificações do programa.
tipo de executável: DLL
modelo: Plugin Bho para Internet Explorer
Versão mínima para site lichess, internet explorer IE10+ (suporte a HTML 5 e WebSockets)
Conversão de peças para FEN: Ok
Verificação se o tabuleiro está invertido (pretas em baixo, brancas em cima):Ok
Método de cliques: metodologia de click e evento onclick  de acordo com as especificações da microsoft  https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa742623(v=vs.85)
Velocidade de cliques: aproximadamente 300ms , de acordo com a perfomance do computador.(sem contar o tempo de cálclulo da UCI).
Possível jogar múltiplos jogos: Ok, desde que em navegadores separados do internet explorer. se estiverem em mesma aba não funcionará.
Autor\Desenvolvedor: Pedro de Lima Freire
Contato:SnesFanRemix@gmail.com

Comentários

Postar um comentário