Les pièces d'échecs (rois, reines, tours, évêques et chevaliers) et les pions sont sur une planche, mais pas sur la case a1 ou h8 . Votre tâche consiste à voyager des cases a1 vides aux cases h8 vides , en ne passant que par des cases vides. Les règles de circulation sont les suivantes:
- Vous pouvez passer de n'importe quel carré vide à n'importe quel carré vide à côté (même rang, fichier suivant ou précédent; ou même fichier, rang suivant ou précédent).
- Vous pouvez passer de n'importe quel carré vide à n'importe quel carré vide en diagonale à côté de lui (rang suivant ou précédent, fichier suivant ou précédent), à condition que les carrés de coin gras contiennent soit (a) deux pions ou (b) des pions / morceaux d'en face Couleur. (Deux pièces non pion, ou une pièce non pion et un pion, de la même couleur sont suffisamment solides pour empêcher votre progression dans le coin, mais deux pions ne le sont pas; et les pièces / pions de couleur opposée ne fonctionnent pas dans concert pour barrer votre chemin.) Par exemple, si vous êtes sur c4 et que d5 est vide, vous pouvez y procéder à condition que c5 et d4 contiennent des pions ou contiennent des pièces / pions de couleur opposée. Voir la section "Exemples de diagonales" ci-dessous pour les photos.
Contribution
Description de la carte FEN . C'est-à-dire que l'entrée sera une chaîne qui comprend une description du rang 8 , une barre oblique ( /
), une description du rang 7 , une barre oblique,… et une description du rang 1 . La description de chaque rang comprend des chiffres et des lettres allant du fichier a au fichier h , où les lettres indiquent les pièces et les pions (les noirs sont p
= pion, n
= chevalier, b
= évêque, r
= tour, q
= reine, k
= roi et le blanc ceux-ci sont des versions majuscules du même) et les nombres indiquent le nombre successif de carrés vides. Par exemple, rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBN
est le plateau après un mouvement de pli (pion du roi à e4) dans une partie d'échecs.
a1 et h8 seront vides dans l'entrée; c'est-à-dire que la première barre oblique a un chiffre avant, et la dernière barre oblique a un chiffre après.
Production
Truthy ou falsey, indiquant si un passage réussi à h8 est possible.
Si l'entrée n'est pas une description de carte FEN valide (c'est-à-dire celle qui correspond à mon explication ci-dessus), ou si a1 ou h8 est occupé, alors la sortie peut être n'importe quoi ou rien. (En d'autres termes: vous pouvez supposer que l'entrée répond aux exigences ci-dessus.)
Notation
C'est le golf de code: le moins d'octets gagne.
Exemple d'entrée et de sortie
Notez que votre code doit fonctionner pour toutes les entrées valides, pas seulement les exemples.
Ajoutez un espace et un w
après chaque FEN pour le visualiser http://www.dhtmlgoodies.com/scripts/chess-fen/chess-fen-3.html
. (Notez que certains autres visualiseurs FEN en ligne n'autoriseront pas un plateau illégal aux échecs, par exemple avec un pion de rang 1 ou 8 , donc ne peut pas être utilisé à nos fins.)
Exemples véridiques
8/8/8/8/8/8/8/8
- le plateau vide1p1Q4/2p1Q3/2p1Q3/2p1Q3/2p1Q3/2p1Q3/Q1p1Q3/1q3q2
- il y a un chemin a1 , b2 , b3 , b4 , b5 , b6 , b7 , c8 , d7 , ( pas e8 , qui est bloqué, mais) d6 , d5 , d4 , d3 , d2 , d1 , e1 , f2 , f3 , f4 , f5 , f6 , f7 , f8 , g8 , h88/8/KKKKK3/K3K3/K1K1p3/Kp1K4/K1KK4/2KK4
- un exemple où un carré qui est bloqué à un moment donné doit être traversé plus tard (pour vous assurer que vous ne définissez pas les carrés comme infranchissables)K1k1K1K1/1K1k1K1k/K1K1k1K1/1k1K1K1k/K1k1K1k1/1K1k1k1K/K1K1k1K1/1k1k1K1k
- il n'y a qu'un seul chemin à travers (suivez simplement votre nez: il n'y a qu'un seul carré à déplacer à chaque étape, à moins de faire un pas en arrière); c'est aussi un exemple où un carré est bloqué à un moment donné mais nécessaire plus tard
Exemples de Falsey
6Q1/5N2/4Q3/3N4/2Q5/1N6/2Q5/1N6
- toute tentative de chemin devra passer par deux pièces de même couleur situées en diagonaleN1q1K1P1/1R1b1p1n/r1B1B1Q1/1p1Q1p1b/B1P1R1N1/1B1P1Q1R/k1k1K1q1/1K1R1P1r
- le seul chemin à travers la diagonale a8-h1 est à f2-g3 , mais cela nécessiterait un passage par e1-d2 ou f2-e3 , qui sont tous les deux impossibles.4Q3/4q3/4Q3/5Q2/6Q1/3QqP2/2Q5/1Q6
4q3/4Q3/4q3/5q2/6q1/3qQp2/2q5/1q6
Exemples de diagonales
Dans le cas où la prose ci-dessus n'était pas claire, voici quelques photos.
Diagonales passables
Diagonales infranchissables