題:
為什麼只有第一個機會才有可能傳遞?
DrZ214
2017-05-22 09:46:28 UTC
view on stackexchange narkive permalink

引用 FIDE規則手冊

此捕獲行為僅在此進展之後是合法的,被稱為“過客”

引用 Wikipedia

必須捕獲 pass

為什麼?


我知道嗎? en passant 的基本故事,在這裡我將其解釋為:添加了一條規則,使典當在其第一步中向前移動兩個正方形。有人說,如果一個棋子使用它從相鄰的一個敵人那裡逃脫怎麼辦?然後將更改基本的pawn骨架/框架!因此,我們必須有一個 en passant 來保留相同的國際象棋框架。

好吧,這部分很有意義,但是為什麼下一步必須要呢? 規則的該部分是否僅在以後添加?為什麼要添加呢?當兩個棋子在對角線相鄰時彼此面對時,它們不必立即捕獲,也不必喪失捕獲能力。因此,“幽靈兵”的概念,如果您不立即捕獲它,而另一個玩家也沒有移動它,在我看來,它應該仍然存在並且只要存在就可以捕獲。 p>

有人知道為什麼創建傳人的這一部分嗎?


可選背景:如果您很好奇,我來自編程背景。在所有特殊動作中,傳人是最難編程的。這不僅是捕捉片移動到空白方塊的唯一舉動,而且如果不採取行動,它也是“消失”的唯一舉動。也就是說,這是總木板位置沒有足夠信息來生成所有動作的動作。 (對於castling來說也是如此,它已經有了相當多的棘手規則。)在第4或第5級,兩個敵方棋子可能相鄰,周圍都是空白方塊,但是您仍然不知道 en passant 是可能的。您必須檢查以前的舉動。

或者我想。現在,我正在重新研究這一點,我找到了一種無需檢查移動日誌即可實現 en passant 的巧妙方法。不要在開始時生成它。在move_take(特別是在兩步棋子移動結束時)生成它。但是將其存儲在一個特殊的移動數組中,因為普通的數組會在每次inc_turn時被清除。然後遷移並在gen_all_moves處適當清除。這樣,如果不採用ep,則它不會在下一步移動時自行生成,因為在下一步移動時,您沒有將相同的pawn移兩步。只要記住檢查棋子的兩側並在兩個敵方棋子存在的情況下創建兩個 ep移動即可。

在每個棋子中都使用“移動的”布爾值來實現城堡,這當然對於典當的第一步也很有用。即使King和Rook在正確的位置,您也可以使用它來查看King / Rook是否已經移動過。無需檢查移動日誌。但是我要說的是Castling現在是最難實現的步驟,因為您必須檢查路徑是否受到攻擊。我想到巧妙的方法後,“過客”不再是最困難的事情。

“ *這是唯一的棋盤,該棋盤的總位置不足以產生所有棋子的信息*”這也適用於cast子:如果國王或相應的車子在比賽中移動並返回其原始方塊,則您不能進行城堡攻擊。
@user1583209嗯,是的。我應該檢查我所有的象棋遊戲中的錯誤。
根據您所編程的內容,您還需要注意三重重複和50條移動規則,這些規則也不在板上。
國際象棋位置常用的福賽斯-愛德華茲符號(FEN)包括在該位置上是否有傳人和/或小鬍子。董事會可能沒有足夠的信息,但是FEN足夠。 https://zh.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation
從歷史上很明顯,雙重步驟原本是雙重*移動*。我認為這解釋了總則背後的邏輯。
請注意,刪除pass-pass的“後續動作”規則不會免除您必須攜帶有關位置的其他信息的麻煩,您仍然需要知道目標棋子是否通過雙精度位列第5/4位一招或兩招。除非您提議您也應該能夠“繞過”單個步驟?
@DagOskarMadsen是的,這可以解釋這一點,但是我從未見過它明確地被稱為雙向行動。您可以為此發布歷史鏈接嗎?如果是這樣,請回答它,我會接受的,因為這是我所能看到的唯一100%的解釋性解釋。我只是補充說,這是“雙重考慮”的想法,這一點並不明顯。 B / R / Q由於其範圍,也可以進行“兩次移動”。我一直認為棋子的射程有所改變,而不是雙重行動。
為什麼主教成對角線移動?
五 答案:
Ken Wei
2017-05-22 11:15:46 UTC
view on stackexchange narkive permalink

將自己“暴露”給他人的棋子將與沒有被傳遞的棋子區分開。例如,對於a4上的黑色棋子和b4上的白色棋子:在b2-b4之後的任何時間給黑色提供播放... axb3的選項,這意味著移動b2-b4和b3-b4似乎導致相同的動作位置,因為它在很大程度上取決於過去,因此具有長期影響。尤其是,當典當站在b2上時,白色將需要權衡以一兩步將典當移至b4的利弊(其中,劣勢賦予了黑色持有b3的持久權利)。

或者,按照您正確描述的積極性的精神,永久性地阻止兩個正方形的棋子逃逸,將大大忽略(或使之複雜)能夠向前移動兩個正方形的好處。

另一個實際的原因是,對於人類而言,這要簡單得多:板上有多個棋子,因此要對所有這些權利進行跟踪會很複雜。 (曾經有人建議作品可以在一些FIDE會議上捕捉到同行;不用說,這是在房間外被大笑的---那是說,我不記得這個故事的來源了。)

有人可能會問類似的(對立的)問號。可以說,“更簡單”的選擇可能是始終允許鑄造,只要這些塊重新回到其原始正方形上即可,但這也具有很強的含義,其中之一是降低了開發的重要性。

通常,國際象棋中的特殊動作具有與之相關的限制,以確保在做出這些特殊動作後,它們不會改變遊戲的“外觀”方式(玩... axb3在b4上採用白色棋子看上去與舊遊戲,因此只允許移動一次)。畢竟,規則是人為設計的,可以說是任意的。

Dag Oskar Madsen
2017-05-24 12:35:06 UTC
view on stackexchange narkive permalink

OP要求我提供消息來源,以證明“雙步走”最初是“ 雙向” 的說法。我會盡力而為。

現代國際象棋的前身遊戲 Shatranj確實有典當( sarbaz ),但沒有兩步走。 Shartanj中的棋子力量相對較弱,並且遊戲玩法(特別是在開幕式中)通常很慢。

在中世紀,他們通過從某些 tabiyas開始遊戲來解決此問題,

最近的一項西方發明是為了加快比賽速度而進行的,它是允許棋子的雙重初始動作。國際象棋的簡短歷史亨利·戴維森(Henry A. Davidson),第7章:

最初的雙重舉動。直到1550年左右,棋子才開始在移動中均勻地移動兩個正方形。最終採用該規則的原因僅僅是開放成為慣例。懷特將P移至K3 [ e3 ];布萊克也這樣做。然後每個人將棋子推到一個正方形。由於這是通常的開放方式,因此引入了允許兩個動作同時進行以加快遊戲速度的現代做法。實際上,該典當特權是一系列特殊的連續移動特權中的最後一個,而不是第一個。

Davidson然後非常簡要地討論了早期版本中的連續移動規則

在某些時候,還可以選擇將兩個不同的棋子同時移動一步。引用同一本書的話:

在十七世紀,一項慣例實際上是允許玩家通過同時移動兩個白嘴鴉的棋子每個方塊一個方塊來打開遊戲。 [...]可能的想法是,每一個方塊移動兩個棋子相當於在一個方塊移動兩個棋子。

我認為,這種歷史背景為為什麼引入無視規則提供了一些理由。如果雙步實際上是雙步,那麼在第一步之後應該給對手一個機會(在下一個步)捕獲棋子是很合邏輯的。 (另請參閱Brian Towers的答案。)

“一步一步有兩個單獨的棋子”是什麼意思?
我希望現在更有意義。讓我嘗試從這本書中找到直接引用。
嗯,您是說2個棋子可以在同一轉彎中同時移動,但每個棋子只能向前移動1步嗎?在當今的背景下,這將是“極端”的,遠遠超過怪異的過去。
是的,這就是我的意思。我的全部觀點是,在較早的遊戲中,Shatranj棋子只能移動一個步驟,而現代象棋中的雙重步驟是通過遊戲的演變,實際上是連續兩個Shatranj棋子移動。找到引號後,我會用引號將其備份。
另請參閱https://chess.stackexchange.com/questions/4414/why-is-castling-through-and-out-of-check-prohibited?noredirect=1&lq=1
只是好奇:當允許同時典當移動時,是否僅針對白菜卒?如果是這樣,那真是奇怪。除非您嘗試將車子抬起來,而且很笨,否則這些都是最差的開始。順便說一句,謝謝您的出色回答。
@DrZ214在戴維森的書中,似乎只允許白菜卒子使用。很難猜出他使用了什麼資源,因為所有資源都在書末列出,而文本本身沒有引用。
Brian Towers
2017-05-23 20:05:37 UTC
view on stackexchange narkive permalink

原因很簡單。如果d5上的白色棋子阻止了e7上的黑色棋子移動,則e7-e5棋子將其規避。為了使事情變得公平,在引入了雙重典當的第一步後,還引入了被動規則,以使白色不會失去捕獲的可能性。但是,如果黑人不使用e7-e6而白色不立即被俘獲,那麼回到雙倍移動之前的時代,那麼黑人可以在下一步中使用e6-e5,而白人則永遠失去了機會。反映在第二次典當行動之後立即對行動的限制。

有消息來源支持嗎?
當您說“雙重典當移動”時,您是說簡單地移動2個正方形嗎?或**立即採取兩步走?**如果是後者,那可以解釋問題,但我一直認為典當的範圍是2,而不是一舉兩得。如果可以找到源,請發布它。
user1583209
2017-05-23 01:30:00 UTC
view on stackexchange narkive permalink

有趣的問題,儘管我不確定是否有一個很好的答案可以得到消息來源的支持。我可以想到以下動機:

  1. 如果您想像自己的卒子是真正的“軍隊”,那麼如果一支軍隊以高速度(雙步)經過您,則需要立即採取行動(如果您願意的話),並且等不及要等另一支軍隊離開。
  2. 實用性。跟踪所有可能的伴隨捕獲可能會變得棘手。如果所涉及的一個或兩個棋子被另一個相同顏色的棋子代替...
  3. 在國際象棋中,如果一個棋子攻擊相同類型的棋子,而另一棋子同時攻擊第一塊。使用不確定的enpassant,您將創建一個不對稱性,其中一個棋子可以捕獲另一個棋子,反之則不然。
  4. (請參見Ken Wei的答案):在a4上有一個黑色的棋子,在b2上有一個白色的棋子。您需要比較用兩步演奏b2-b3-b4的選擇(會使您失去節奏)和雙步演奏(這會使您面臨無限期捕獲的危險)的比較。
  5. ol>
謝謝,直到您解釋肯威的第一段,我才明白。無限期被俘的危險。整個ep業務增加了很多棘手的內容。
Acccumulation
2019-08-29 21:28:57 UTC
view on stackexchange narkive permalink

您的編程說明依賴於特定於您的程序的變量名,因此很難理解您在說什麼,但是對此進行編程的一種方法是使用“雙典當”布爾值。為簡化起見,我們假設白色是雙棋子。要移動一個棋子兩個空格,白色首先移動一個棋子的 one 空格,並將該棋子的“ double move”布爾值設置為true。如果對手的任何棋子具有正確的“雙棋棋子”布爾值,則它們只有兩個選擇:接受或通過。因此,現在黑方只有兩個合法舉動(如果兩個棋子相鄰則為三個)。黑色可​​以捕獲棋子,也可以通過。如果黑色通過,那麼現在輪到白色了。但是,如果玩家以自己的任何兵的“雙兵棋”布爾值開始為真,則除前進該兵外,不允許他們進行任何移動,然後將布爾值設置為false。如果黑色捕獲了棋子,則布爾值設置為false,現在輪到白色了。

換句話說,您可以想到 en passant 並不是說白色會先走一步,而棋子會移動兩個空格,然後黑色會出現 en passant 選項僅在下一步移動時使用,而白色進行移動時包括將棋子移動一個空格,黑色進行移動時則包括捕獲該棋子或通過該棋子,然後,如果該棋子仍在棋盤上,白色使棋子再次前進。 en passant 選項僅在中間移動(黑色捕獲或通過的移動)中存在,因為這是典當在正確的位置被捕獲的唯一移動。

但是,這裡有一個極端案例: https://www.futilitycloset.com/2010/06/09/intercepted/。由於目前已實施 en passant ,因此如果您的國王在第二次升級之後沒有受到控制,則採取雙步行動是合法的,即使您在典當前進僅一個空格之後就在國王進行了控制。因此,您的代碼必須考慮到這一點。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...