Citando o livro de regras da FIDE :
Essa captura é legal apenas em movimento após esse avanço e é chamada de captura 'en passant'.
Citando a Wikipedia :
A captura passante deve ser feita no próximo turno ou o direito de fazê-lo é perdido.
Por quê?
Conheço a história básica de en passant e vou parafrasear aqui: Uma regra foi adicionada para permitir que os peões avancem dois quadrados à frente no primeiro movimento. Alguém disse algo como, e se um peão usar isso para escapar de um peão inimigo adjacente? Então o esqueleto / estrutura básica do peão seria alterado! Portanto, devemos ter um passante para preservar a mesma estrutura de xadrez.
Ok, essa parte faz sentido, mas por que ela precisa estar no próximo passo? Essa parte da regra foi adicionada apenas mais tarde? Por que foi adicionado? Quando dois peões estão na diagonal adjacentes, um contra o outro, eles não precisam capturar imediatamente ou perder a capacidade de capturar. Portanto, o conceito de "peão fantasma", se você não capturá-lo imediatamente e o outro jogador não o mover, parece-me que ele ainda deve estar lá e disponível para captura enquanto estiver lá.
Alguém sabe por que essa parte de en passant foi criada?
Histórico opcional: Caso você esteja curioso, eu venho de um histórico de programação. De todos os movimentos especiais, en passant é (foi, veja abaixo) o mais difícil de programar. Não é apenas o único movimento em que a peça capturada se move para um quadrado em branco, mas é o único movimento que "desaparece" se você não o fizer. Isso significa que é uma jogada em que a posição total da placa não é suficiente para gerar todas as jogadas. (Isso também é verdade para o jogo de boliche, que já tem seu quinhão de regras complicadas.) Dois peões inimigos podem estar adjacentes na 4ª ou 5ª fileiras, cercados por quadrados em branco, mas você ainda não sabe se é possível passá -lo. Você precisa verificar a jogada anterior.
Ou assim eu pensei. Agora que estou revisitando isso, descobri uma maneira inteligente de implementar en passant sem verificar o log de movimentação. Não o gere no início do turno. Gere-o em move_take, especificamente no final de um movimento de peão de 2 etapas. Mas armazene-o em uma matriz de movimento especial, já que a normal é limpa a cada inc_turn. Em seguida, migre e limpe adequadamente em gen_all_moves. Dessa forma, se ep não for utilizado, ele não será gerado no próximo movimento, porque você não moveu o mesmo peão duas etapas no próximo movimento. Lembre-se de verificar os dois lados do peão e criar dois movimentos ep se houver dois peões inimigos.
O castling foi implementado com a ajuda de um booleano "movido" em cada peça, o que também é útil para o primeiro movimento de um peão, é claro. Mesmo se o rei e a torre estiverem no lugar certo, use-o para verificar se o rei / torre já se moveu antes. Não há necessidade de verificar o log de movimentação. Mas vou dizer que Castling agora é a jogada mais difícil de implementar, porque você precisa verificar se o caminho está sob ataque. En passant não é mais o mais difícil agora que pensei na maneira mais inteligente.
fonte
Respostas:
O OP pediu que eu fornecesse fontes que sustentassem a alegação de que o passo duplo era originalmente um movimento duplo . Eu farei o meu melhor.
O antecessor imediato do xadrez moderno, o jogo Shatranj , tinha peões ( sarbaz ), mas nenhum passo duplo. As peças em Shartanj tinham poderes relativamente fracos, e a jogabilidade, especialmente na abertura, era geralmente lenta.
Nos tempos medievais, eles resolveram esse problema iniciando o jogo a partir de certas tabiyas , estruturas de batalha onde as forças opostas já estavam em contato.
Uma invenção ocidental mais recente para acelerar a jogada foi permitir movimentos duplos iniciais de peões. De Uma Breve História do Xadrez por Henry A. Davidson, Capítulo 7:
Davidson discute muito brevemente as regras de movimentos consecutivos nas versões anteriores do xadrez.
Em algum momento, havia também a opção de mover dois peões diferentes simultaneamente, um passo cada. Citação do mesmo livro:
Penso que este contexto histórico fornece alguma justificativa para a introdução da regra en passant. Se o passo duplo for na verdade um movimento duplo, é bastante lógico que o oponente tenha a chance (no próximo movimento) de capturar o peão após o primeiro passo. (Veja também a resposta de Brian Towers.)
fonte
Um peão que 'se expõe' a passante será distinto daquele que não. Digamos, para um peão preto em a4 e um peão branco em b4: dar ao preto a opção de jogar ... axb3 a qualquer momento após b2-b4 significa que os movimentos b2-b4 e b3-b4, que aparentemente levam ao mesmo posição, têm implicações a longo prazo, pois depende muito do passado. Em particular, quando o peão está em b2, o branco precisaria pesar os prós e os contras de mover seu peão para b4 em um ou dois movimentos (onde o golpe está dando ao preto um direito duradouro de aceitar b3).
Ou, no espírito da motivação de um passageiro que você descreveu corretamente, impedir permanentemente um peão de dois quadrados de 'escapar' negligenciaria (ou complicaria) o benefício de poder mover dois quadrados para a frente.
Outra razão prática, porque é muito mais simples para os seres humanos: com mais de um peão no tabuleiro, seria complicado manter o controle dos direitos passantes de todos eles. (Certa vez, alguém sugeriu que as peças pudessem capturar passant em alguma reunião da FIDE; nem é preciso dizer que isso riu da sala - isso dito, não me lembro da origem dessa história.)
Pode-se fazer uma pergunta semelhante (oposta?) Sobre direitos de castling; a opção "mais simples" pode ser, sem dúvida, sempre permitir o enrolamento, desde que as peças voltem aos seus quadrados originais, mas isso também tem fortes implicações, uma das quais é uma importância reduzida do desenvolvimento.
Geralmente, os movimentos especiais no xadrez têm restrições associadas a eles para garantir que eles não mudem a aparência do jogo após o momento em que esses movimentos são feitos (jogando ... axb3 para dar um peão branco em b4 parece completamente diferente do jogo antigo, por isso é permitido apenas um movimento). Afinal, as regras foram projetadas por humanos, sem dúvida arbitrariamente.
fonte
O motivo é muito simples. Se as brancas tiverem um peão em d5, impedindo que um peão preto em e7 se mova, o movimento e7-e5 contornará isso. Para manter as coisas justas quando o primeiro movimento do peão duplo foi introduzido, a regra en passant também foi introduzida para que o branco não perdesse a possibilidade de capturar. No entanto, voltando à era do movimento pré-duplo, se o preto jogar e7-e6 e o branco não capturar imediatamente, o preto poderá jogar e6-e5 no próximo movimento e o branco perdeu sua chance para sempre. Isso se reflete na restrição de en passant ao movimento imediatamente após o movimento do peão duplo.
fonte
Pergunta interessante, embora não tenha certeza de que haja uma boa resposta que possa ser apoiada por fontes. Eu posso pensar nas seguintes motivações:
fonte
Sua descrição de programação depende do nome da variável específica do seu programa, por isso é difícil entender o que você está dizendo, mas uma maneira de programar isso é ter um booleano de "movimento de peão duplo". Para tornar as coisas mais simples, vamos assumir que o branco é aquele que faz um movimento de peão duplo. Para mover um espaço peão dois, primeiros movimentos brancos o peão umespaço e defina o "movimento duplo" desse peão como booleano. Se qualquer um dos peões do oponente tiver um verdadeiro booleano de "movimento de peão duplo", eles terão apenas duas opções: levar ou passar. Então agora o preto tem apenas dois movimentos legais (três se dois peões forem adjacentes). O preto pode capturar o peão ou passar. Se o preto passa, agora é a vez do branco. Mas se um jogador começa seu turno com um booleano de "movimento de peão duplo" sendo verdadeiro para qualquer um de seus próprios peões, ele não pode fazer nenhum movimento além de avançar esse peão, e então o booleano é definido como falso. Se o preto captura o peão, o booleano é definido como falso e agora é a vez do branco.
Em outras palavras, você pode pensar que en passant não é que o branco faz um movimento que consiste no peão movendo dois espaços e, em seguida, o preto tem a opção en passant apenas no próximo movimento, mas o branco faz um movimento que consiste no peão movendo um espaço, o preto faz um movimento que consiste em capturar esse peão ou passar e, se o peão ainda estiver no tabuleiro, o branco faz um movimento para avançar o peão novamente. A opção en passant existe apenas para o movimento intermediário (aquele em que o preto captura ou passa) porque esse é o único movimento em que o peão está no local certo a ser capturado.
No entanto, há um caso de canto apresentado aqui: https://www.futilitycloset.com/2010/06/09/intercepted/ . Como en passant está atualmente implementado, é legal fazer um movimento duplo se você reis não estiver em xeque após o segundo avanço, mesmo se seu rei estiver em xeque após o peão avançar apenas um espaço. Portanto, seu código deve levar isso em consideração.
fonte