Próbuję napisać prosty program szachowy, w ramach którego piszę metody, aby znaleźć wszystkie prawidłowe ruchy. Mogę wykryć szpilki i nie mam problemu z pominięciem ruchów, które spowodowałyby, że gracz będący w ruchu był w szachu, z wyjątkiem jednej sytuacji, której nie jestem pewien.
Po zajęciu en passant nie tylko kwadrat zajmowany przez pionka przejmującego jest teraz pusty, ale także kwadrat pionu. Czy jest jakakolwiek pozycja, w której zdobycie en passant skutkuje odkrytym czekiem na króla gracza, który przechwytuje en passant , nie dlatego, że pionek był przypięty, ale dlatego, że czek został wcześniej zatrzymany przez złapany pionek?
Myślę, że taka sytuacja po prostu nie jest możliwa, przynajmniej nie mogę wymyślić pozycji i serii ruchów, które powodują taką sytuację; fakt, że musisz schwytać en passant przy pierwszej okazji oznacza, że albo pionek, który powinien później przechwycić en passant, jest przypięty i nie może awansować do piątej rangi, lub czek i tak jest blokowany przez inny kawałek. Niestety mam problem z wykluczeniem, że jest jakaś sprzeczna z intuicją sytuacja, w której może się to zdarzyć. Czy ktoś może potwierdzić moje podejrzenia (lub podać kontrprzykład)?
źródło
Odpowiedzi:
Naprawdę ciekawe pytanie. Myślę, że następujące pokazuje, że taka sytuacja jest możliwa, w zależności od tego, jak zdefiniujesz pin:
oraz 2. dxe6 jest nielegalny.
Sprawdzenie przejdzie od zatrzymania przez oba pionki do zatrzymania przez żadne z nich.
źródło
Chociaż odpowiedź na to pytanie została dobrze rozwiązana, chcę podzielić się problemem szachowym, który wykorzystuje dziwny mechanizm przypinania pionka przez wziętego pionka.
Cieszyć się!
Ten problem można znaleźć tutaj w bazie danych Yet Another Chess Problem .
Mała wskazówka dla niektórych: samookaleczenie to problem szachowy, w którym jedna strona zmusza drugą stronę do ich matowania.
Wieżowiec na a4 przypina czarnego pionka tak, że nie może on zabrać en passant, ponieważ wystawiłoby to czarnego króla na sprawdzenie. Tak więc Czarny pionek nie może tego zrobić i musi iść z kolegą do przodu.
źródło
Jest to możliwe, ale musisz sprawdzić, kto jest sprawdzany (nieznaczna gra słów zamierzona ... :-)).
Powiedzmy, że to ruch czarnych:
Czerń porusza pionek o dwie stopnie, otwierając go do en passantnego ruchu z białego pionka. Jeśli ten ruch prowadzi do sprawdzenia czarnego króla, jest to ruch nielegalny. Jeśli prowadzi to do czekania na białego króla, białe muszą odpowiedzieć, broniąc króla, a więc nie mogą wykonać ruchu pasywnego, chyba że ten ruch ochroni króla.
Jeśli nie zostanie wykonane sprawdzenie, biały może wykonać ruch en passant. Jeśli prowadzi to do sprawdzenia białego króla, jest to nielegalny ruch. Jeśli prowadzi to do kontroli czarnego króla, czarny musi odpowiedzieć broniąc króla.
źródło