Citant le livre de règles FIDE :
Cette capture n'est légale qu'en mouvement suite à cette avancée et s'appelle une capture «en passant».
Citant Wikipédia :
La capture en passant doit être faite au tour suivant ou la droite pour le faire est perdue.
Pourquoi?
Je connais l'histoire de base en passant et je vais juste la paraphraser ici: Une règle a été ajoutée pour permettre aux pions d'avancer de deux cases lors de son premier mouvement. Quelqu'un a dit quelque chose comme, et si un pion l'utilisait pour s'échapper d'un pion ennemi adjacent? Ensuite, le squelette / cadre de base du pion serait changé! Il faut donc avoir un passant pour conserver le même cadre d'échecs.
D'accord, cette partie est logique, mais pourquoi doit-elle être sur le tout prochain coup? Cette partie de la règle n'a-t-elle été ajoutée que plus tard? Pourquoi a-t-il été ajouté? Lorsque deux pions sont en diagonale adjacents et s'affrontent, ils n'ont pas à capturer immédiatement ou à défaut de pouvoir capturer. Ainsi, le concept de "pion fantôme", si vous ne le capturez pas immédiatement et que l'autre joueur ne le déplace pas, me semble qu'il devrait toujours être là et disponible pour la capture tant qu'il est là.
Est-ce que quelqu'un sait pourquoi cette partie d' en passant a été créée?
Contexte optionnel: Au cas où vous seriez curieux, je viens d'un parcours de programmation. De tous les coups spéciaux, en passant est (était, voir ci-dessous) le plus difficile à programmer. Non seulement c'est le seul mouvement où la pièce de capture se déplace vers un carré vide, mais c'est le seul mouvement qui "disparaît" si vous ne le prenez pas. Cela signifie que c'est un mouvement où la position totale du plateau n'est pas suffisante pour générer tous les mouvements. (Cela vaut aussi pour le roque, qui a déjà sa juste part de règles délicates.) Deux pions ennemis pourraient être adjacents au 4ème ou 5ème rang, entourés de carrés vides, mais vous ne savez toujours pas si le passant est possible. Vous devez vérifier le mouvement précédent.
Ou du moins je le pensais. Maintenant que je revisite cela, j'ai trouvé un moyen intelligent d'implémenter en passant sans vérifier le journal des déplacements. Ne le générez pas au début du tour. Générez-le à move_take, en particulier à la fin d'un mouvement de pion en 2 étapes. Mais stockez-le dans un tableau de mouvements spécial car le tableau normal est effacé à chaque inc_turn. Puis migrez et effacez de manière appropriée à gen_all_moves. De cette façon, si ep n'est pas pris, il ne se génère pas au prochain coup car vous n'avez pas déplacé ce même pion de deux pas au coup suivant. N'oubliez pas de vérifier les deux côtés du pion et de créer deux mouvements ep si deux pions ennemis sont là.
Le roque a été implémenté à l'aide d'un booléen "déplacé" dans chaque pièce, ce qui est également utile pour le premier mouvement d'un pion bien sûr. Même si le Roi et la Tour sont au bon endroit, vous l'utilisez pour voir si le Roi / Tour a déjà bougé. Pas besoin de vérifier le journal des déplacements. Mais je dirai que Castling est maintenant le mouvement le plus difficile à mettre en œuvre car vous devez vérifier si le chemin est attaqué. En passant n'est plus le plus difficile maintenant que j'ai pensé à la manière intelligente.
la source
Réponses:
Le PO m'a demandé de fournir des sources soutenant l'affirmation selon laquelle le double pas était à l'origine un double mouvement . Je ferai de mon mieux.
Le prédécesseur immédiat des échecs modernes, le jeu Shatranj , avait des pions ( sarbaz ), mais pas de double pas. Les pièces de Shartanj avaient des pouvoirs relativement faibles et le gameplay, en particulier lors de l'ouverture, était généralement lent.
À l'époque médiévale, ils ont résolu ce problème en commençant le jeu à partir de certains tabiyas , tableaux de bataille où les forces adverses étaient déjà en contact.
Une invention occidentale plus récente pour accélérer le jeu était de permettre des mouvements de pions à double initial. À partir d' une courte histoire des échecs par Henry A. Davidson, chapitre 7:
Davidson discute ensuite très brièvement des règles de coup consécutif dans les versions précédentes des échecs.
Il y avait aussi à un moment donné une option pour déplacer deux pions différents simultanément une étape chacun. Citation du même livre:
Je pense que ce contexte historique explique pourquoi la règle en passant a été introduite. Si le double pas est en fait un double coup, alors il est tout à fait logique que l'adversaire ait une chance (au coup suivant) de capturer le pion après le premier pas. (Voir aussi la réponse de Brian Towers.)
la source
Un pion qui «s'expose» à en passant sera distinct de celui qui ne le fait pas. Disons, pour un pion noir sur a4 et un pion blanc sur b4: donner au noir la possibilité de jouer ... axb3 à tout moment après b2-b4 signifie que les mouvements b2-b4 et b3-b4, qui conduisent apparemment au même position, ont des implications à long terme car elle dépend trop du passé. En particulier, lorsque le pion se trouve sur b2, le blanc devrait peser les avantages et les inconvénients de déplacer son pion vers b4 en un ou deux mouvements (où le con donne au noir un droit durable de prendre b3).
Ou, dans l'esprit de la motivation en passant que vous avez correctement décrite, empêcher définitivement un pion de deux carrés de `` s'échapper '' négligerait (ou compliquerait) l'avantage de pouvoir avancer de deux carrés.
Une autre raison pratique parce que c'est beaucoup plus simple pour les humains: avec plus d'un pion sur le plateau, il serait compliqué de garder une trace des droits en passant sur chacun d'eux. (Quelqu'un a suggéré une fois que les pièces puissent être capturées en passant lors d'une réunion de la FIDE; il va sans dire que cela a été ri de la salle --- cela dit, je ne me souviens pas de la source de cette histoire.)
On peut poser une question similaire (opposée?) Sur les droits de roque; l'option `` plus simple '' peut sans doute être de toujours autoriser le roque tant que les pièces sont de retour sur leurs carrés d'origine, mais cela aussi a de fortes implications, dont l'une est une importance réduite du développement.
Généralement, les mouvements spéciaux dans les échecs sont associés à des restrictions pour s'assurer qu'ils ne changent pas l'apparence du jeu après le moment où ces mouvements spéciaux sont effectués (jouer ... axb3 pour prendre un pion blanc sur b4 semble complètement contrairement à l'ancien jeu, il n'est donc autorisé que pour un coup). Après tout, les règles ont été conçues par des humains, sans doute arbitrairement.
la source
La raison est très simple. Si le blanc a un pion sur d5 empêchant un pion noir sur e7 de se déplacer, alors le mouvement e7-e5 le contourne. Pour garder les choses justes lorsque le premier coup de pion a été introduit, la règle en passant a également été introduite afin que les blancs ne perdent pas la possibilité de capturer. Cependant, pour revenir à l'ère du pré-double mouvement, si le noir joue e7-e6 et que le blanc ne capture pas immédiatement, le noir peut jouer e6-e5 au coup suivant et le blanc a perdu sa chance pour toujours. Cela se reflète dans la restriction du passage au mouvement immédiatement après le mouvement de double pion.
la source
Question intéressante, même si je ne suis pas sûr qu'il existe une bonne réponse qui pourrait être soutenue par des sources. Je peux penser aux motivations suivantes:
la source
Votre description de programmation repose sur le nom de variable spécifique à votre programme, il est donc difficile de comprendre ce que vous dites, mais une façon de programmer cela est d'avoir un "mouvement de pion double" booléen. Pour simplifier les choses, supposons que le blanc est celui qui fait un double mouvement de pion. Pour déplacer un pion deux espaces, le blanc déplace d'abord le pion unl'espace, et définissez le "double mouvement" de ce pion sur true. Si l'un des pions de l'adversaire a un vrai booléen "double pion move", alors il n'a que deux options: prendre ou passer. Alors maintenant, les noirs n'ont que deux coups légaux (trois si deux pions sont adjacents). Les noirs peuvent soit capturer le pion, soit passer. Si le noir passe, c'est maintenant au tour du blanc. Mais si un joueur commence son tour avec un booléen "double pion move" étant vrai pour l'un de ses propres pions, il n'est pas autorisé à faire d'autre mouvement que d'avancer ce pion, puis le booléen est défini sur false. Si le noir capture le pion, le booléen est défini sur faux et c'est maintenant au tour du blanc.
En d'autres termes, vous pouvez penser qu'en passant n'est pas que le blanc fait un mouvement composé du pion se déplaçant de deux espaces, et puis le noir n'a l' option en passant que sur le mouvement suivant, mais plutôt que le blanc fait un mouvement composé du pion se déplaçant d'une case, le noir fait un mouvement consistant à capturer ce pion ou à le passer, puis, si le pion est toujours sur le plateau, le blanc fait un mouvement pour faire avancer le pion à nouveau. L' option en passant n'existe que pour le mouvement intermédiaire (celui dans lequel le noir capture ou passe) car c'est le seul mouvement où le pion est au bon endroit pour être capturé.
Cependant, il y a un cas d'angle présenté ici: https://www.futilitycloset.com/2010/06/09/intercepted/ . Comme en passant est actuellement implémenté, il est légal de faire un double mouvement si votre rois n'est pas en échec après le deuxième avancement, même si votre roi est en échec après que le pion ait avancé d'une seule case. Votre code devrait donc en tenir compte.
la source