Figury szachowe (królowie, królowe, wieże, biskupi i rycerze) i pionki znajdują się na planszy, ale nie na polu A1 lub H8 . Twoim zadaniem jest podróż z pustych pól A1 do pustych pól H8 , przechodząc tylko przez puste pola. Zasady przemieszczania są następujące:
- Możesz przejść z dowolnego pustego kwadratu do dowolnego pustego kwadratu obok niego (ta sama ranga, następny lub poprzedni plik; lub ten sam plik, następny lub poprzedni stopień).
- Możesz przejść z dowolnego pustego kwadratu do dowolnego pustego kwadratu po przekątnej (następna lub poprzednia ranga, następny lub poprzedni plik), pod warunkiem, że kwadraty w narożnikach zawierają albo (a) dwa pionki, albo (b) pionki / kawałki przeciwnych kolor. (Dwa pionki lub pionek i pionek tego samego koloru są wystarczająco mocne, aby zablokować twój postęp w rogu, ale dwa pionki nie są; pionki / pionki w przeciwnych kolorach nie działają koncert, aby przeszkodzić ci na drodze.) Na przykład, jeśli jesteś na c4, a d5 jest puste, możesz przejść do niego, pod warunkiem, że c5 i d4 zawierają pionki lub zawierają pionki / pionki o przeciwnych kolorach. Zdjęcia znajdują się w sekcji „Przykładowe przekątne” poniżej.
Wejście
Opis płyty FEN . To znaczy: Dane wejściowe będą ciągiem zawierającym opis rangi 8 , ukośnik ( /
), opis rangi 7 , ukośnik,… i opis rangi 1 . Opis każdej rangi zawiera cyfry i litery biegnące od pliku a do pliku h , gdzie litery oznaczają pionki i pionki (czarne to p
= pionek, n
= rycerz, b
= biskup, r
= wieża, q
= królowa, k
= król i biały te są wielkimi wersjami tego samego), a liczby wskazują kolejną liczbę pustych kwadratów. Na przykład, rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBN
jest to deska po jednym ruchu warstwy (pionek króla na e4) w szachach.
a1 i h8 będą puste na wejściu; tzn. pierwszy ukośnik ma cyfrę przed nim, a ostatni ukośnik ma cyfrę po nim.
Wynik
Prawda czy falsey, wskazując, czy możliwe jest udane przejście do h8 .
Jeśli dane wejściowe nie są poprawnym opisem płyty FEN (co oznacza, że pasuje do mojego wyjaśnienia powyżej) lub jeśli a1 lub h8 jest zajęty, to wynik może być cokolwiek lub nic. (Innymi słowy: możesz założyć, że dane wejściowe spełniają powyższe wymagania).
Punktacja
To jest kod golfowy: wygrywa najmniej bajtów.
Przykładowe wejście i wyjście
Pamiętaj, że Twój kod musi działać dla wszystkich prawidłowych danych wejściowych, nie tylko dla przykładów.
Dodaj spację i w
po każdym FEN, aby go wizualizować http://www.dhtmlgoodies.com/scripts/chess-fen/chess-fen-3.html
. (Należy pamiętać, że niektóre inne internetowe wizualizatory FEN nie zezwalają na planszę, która jest nielegalna w szachach, np. Z pionkiem o randze 1 lub 8 , więc nie można jej użyć do naszych celów.)
Prawdziwe przykłady
8/8/8/8/8/8/8/8
- pusta tablica1p1Q4/2p1Q3/2p1Q3/2p1Q3/2p1Q3/2p1Q3/Q1p1Q3/1q3q2
- istnieje ścieżka a1 , b2 , b3 , b4 , b5 , b6 , b7 , c8 , d7 , ( nie e8 , to jest zablokowane, ale) d6 , d5 , d4 , d3 , d2 , d1 , e1 , f2 , f3 , f4 , f5 , f6 , f7 , f8 , g8 , h88/8/KKKKK3/K3K3/K1K1p3/Kp1K4/K1KK4/2KK4
- przykład, w którym kwadrat, który jest zablokowany w jednym punkcie, musi zostać przepuszczony później (aby upewnić się, że nie ustawisz kwadratów jako nieprzekraczalnych)K1k1K1K1/1K1k1K1k/K1K1k1K1/1k1K1K1k/K1k1K1k1/1K1k1k1K/K1K1k1K1/1k1k1K1k
- istnieje jedna ścieżka (wystarczy podążać za nosem: na każdym kroku jest tylko jeden kwadrat, chyba że cofniesz się o krok); jest to również przykład, w którym kwadrat jest blokowany w jednym punkcie, ale jest potrzebny później
Przykłady Falsey
6Q1/5N2/4Q3/3N4/2Q5/1N6/2Q5/1N6
- każda próba ścieżki będzie musiała przejść przez dwa ukośne kawałki tego samego koloruN1q1K1P1/1R1b1p1n/r1B1B1Q1/1p1Q1p1b/B1P1R1N1/1B1P1Q1R/k1k1K1q1/1K1R1P1r
- jedyną drogą przez przekątną a8-h1 jest f2-g3 , ale wymagałoby to przejścia przez e1-d2 lub f2-e3 , które są niemożliwe.4Q3/4q3/4Q3/5Q2/6Q1/3QqP2/2Q5/1Q6
4q3/4Q3/4q3/5q2/6q1/3qQp2/2q5/1q6
Przykładowe przekątne
W przypadku, gdy powyższa proza była niejasna, oto kilka zdjęć.
Przejezdne przekątne
Nieprzejezdne przekątne