Também disponível em: English · Español · Français · العربية
Analisador de FEN: valide uma posição de xadrez e veja qual convenção ela usa
Cole um FEN para conferir cada campo, desenhar o tabuleiro e descobrir se a casa en passant entrega qual ferramenta o escreveu.
O que é um FEN
A notação Forsyth-Edwards guarda uma posição inteira de xadrez numa única linha de texto. São seis campos separados por espaços: onde estão as peças, de quem é a vez, quais roques continuam disponíveis, a casa de captura en passant, quantos meios lances se passaram desde a última captura ou movimento de peão, e o número do lance. A posição inicial é rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1.
O campo de posição é lido da oitava fileira até a primeira e da coluna a até a h, com letras para as peças — maiúsculas para as brancas — e dígitos para sequências de casas vazias. Essa ordem é o motivo de um FEN parecer de cabeça para baixo em relação a como alguém escreveria o tabuleiro de memória: ele começa pela última fileira das pretas.
Um FEN descreve uma posição e nada mais. Ele não registra os lances que levaram até ali, o que importa mais do que parece, porque um dos seis campos fala justamente do lance anterior.
Como usar
- Cole um FEN ou escolha um exemplo. Os exemplos incluem o do próprio padrão após 1. e4, a posição inicial, um en passant que realmente pode ser feito, outro que só parece, e uma string com várias coisas erradas.
- Leia a tabela de campos e o tabuleiro. Cada campo aparece com seu valor e seu significado. O que for ilegível vira erro; o que for legível mas impossível — um peão na última fileira, um direito de roque sem torre — é aviso e não recusa.
- Veja o veredito de convenção. Se a casa en passant está nomeada mas ninguém consegue capturá-la, o FEN foi escrito por algo que segue o padrão PGN, e a ferramenta imprime as duas formas para você ver o que a outra convenção teria produzido.
O campo en passant, onde duas convenções discordam
O padrão PGN é explícito sobre o quarto campo. A casa de captura en passant, diz ele, é dada se e somente se o último lance foi um avanço de peão de duas casas — e portanto o campo pode trazer um nome de casa mesmo que não haja peão adversário que possa executar a captura imediatamente. A regra fala do que acabou de acontecer, não do que agora é possível.
O padrão demonstra isso duas vezes nos seus próprios exemplos. Após 1. e4 ele imprime um FEN terminando em b KQkq e3 0 1, e as pretas não têm peão algum perto de e3. Após 1... c5 imprime w KQkq c6 0 2, e o único peão branco está em e4, longe de c6. Ambos registram uma casa que não dá para usar.
A maior parte do software faz o contrário. O chess.js, biblioteca sobre a qual quase toda ferramenta de xadrez da web é construída, escreve a casa só quando a captura é de fato legal: o próprio comentário no código diz que imprime a casa en passant apenas se a captura for um lance válido, com o peão presente e sem cravada. Ele oferece uma opção para forçar o comportamento do padrão, mas não é o padrão de fábrica.
Então uma mesma posição tem duas formas, diferentes em um único campo, e nenhuma está errada. O custo prático é que igualdade de strings FEN deixa de ser igualdade de posições: deduplicar uma coleção de partidas por FEN, buscar uma posição num livro de aberturas ou detectar tripla repetição comparando strings vai tratar esses dois registros como posições diferentes. Se você já viu uma posição que deveria ter batido e não bateu, é a primeira coisa a conferir.
O que isto consegue e não consegue dizer
O veredito de convenção tem três estados e só um é resposta de verdade. Uma casa nomeada que ninguém pode capturar identifica o padrão PGN com certeza, porque quem só a escreve quando dá para capturar jamais a teria emitido. Uma casa nomeada que dá para capturar não diz nada, já que as duas convenções a escrevem. E um traço também não diz nada: pode significar que nenhum peão avançou duas casas, ou que algum avançou e quem escreveu omite a casa. Um FEN não registra o lance anterior, então isso não se resolve pela string, e a ferramenta diz isso em vez de chutar.
Decidir se a captura está realmente disponível exige o tabuleiro inteiro, e não as duas casas ao lado do peão. O peão que captura pode estar cravado contra o próprio rei, e há um caso mais raro em que o peão que captura e o capturado deixam a mesma fileira ao mesmo tempo e expõem o rei a uma torre. Esta página joga a captura e verifica se o rei fica atacado, que é o mesmo teste que as bibliotecas fazem; uma verificação de adjacência erraria nos dois casos.
A validação para antes da legalidade. A ferramenta confere se os seis campos estão bem formados e sinaliza posições que não poderiam surgir numa partida — sem rei, com dois reis, com peão na primeira fileira, com direito de roque sem torre atrás —, mas não tenta provar que uma posição seja alcançável, o que é bem mais difícil do que parece. Um FEN pode estar perfeitamente formado e descrever algo que nenhuma partida produziria.
Duas coisas menores. Direitos de roque são direitos, não lances legais: um FEN pode dizer KQkq enquanto o rei está em xeque e não pode rocar de jeito nenhum. E o relógio de meios lances é informação sobre a partida mais do que sobre a posição, então dois tabuleiros idênticos com relógios diferentes são FENs diferentes e, para efeito de repetição, registros genuinamente distintos.
Por que é grátis?
Analisar uma linha de texto e desenhar oito fileiras de casas roda no seu navegador. Não há servidor no caminho, então não há o que cobrar nem conta a criar.
Nada é enviado. Recarregue a página e ela terá esquecido a posição.