Défi:
Étant donné un damier, sortez le plus petit nombre de mouvements qu'il faudrait (en supposant que le noir ne bouge pas du tout) pour rogner une pièce rouge, si possible.
Règles :
Le côté rouge sera toujours en bas, mais leurs pièces peuvent commencer dans n'importe quelle rangée (même la rangée du roi vers laquelle ils doivent se rendre). Les pièces noires sont immobiles , ce qui signifie qu'elles ne se déplacent pas entre les mouvements des rouges, mais elles sont retirées du plateau lorsqu'elles sont capturées. Notez que les pièces peuvent commencer sur n'importe quel espace du plateau, y compris les unes à côté des autres. Ce n'est pas ainsi que se jouent les dames normales, mais votre programme doit être capable de les résoudre. (Voir entrée 5) Cependant, les pions ne doivent se déplacer qu'en diagonale (voir entrée 3). La capture en arrière est autorisée si la première capture est en avant dans la chaîne (voir entrée 7).
Contribution:
Un damier 8x8, avec des espaces de tableau définis comme les caractères suivants (n'hésitez pas à utiliser des alternatives tant qu'elles sont cohérentes):
. - Vide
R - Pièce (s) rouge (s)
B - Pièce (s) noire (s)
Production:
Le plus petit nombre de mouvements, il faudrait une pièce rouge pour être «roi» en entrant dans la rangée du roi sur la rangée supérieure du plateau (côté noir), 0 si aucun mouvement n'est requis (une pièce rouge a commencé sur la rangée du roi), ou un nombre négatif s'il est impossible de rois une pièce rouge (c'est-à-dire que le noir occupe toute la première rangée).
Entrée 1:
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
R . . . . . . .
Sortie 1:
7
Entrée 2:
. . . . . . . .
. . . . . . . .
. . . . . B . .
. . . . . . . .
. . . B . . . .
. . . . . . . .
. B . . . . . .
R . . . . . . .
Sortie 2:
2
Entrée 3:
. B . B . B . B
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
R . . . . . . .
Sortie 3:
-1
Entrée 4:
. . . . . . . R
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
R . . . . . . .
Sortie 4:
0
Entrée 5:
. . . . . . . .
. . . . . . . .
. . . . . . . .
. B . . B . . .
B . . . . B . .
. B . B . . . .
. . B . . B . .
. . . R R . . .
Résultat 5:
4
Entrée 6:
. . . . . . . .
. . . . . . . .
. B . . . . . .
. . B . . . . .
. B . B . . . .
. . . . R . . .
. . . B . . . .
. . . . R . . .
Résultat 6:
2
Entrée 7:
. . . . . . . .
. . . . . . . .
. . B . . . . .
. . . . . . . .
. . B . . . . .
. B . B . B . .
. . . . B . . .
. . . . . R . R
Sortie 7:
4
Notation:
C'est le code-golf , donc le code le plus court en octets gagne.
Réponses:
JavaScript (ES6),
354322 octetsPrend un tableau en entrée avec:
Renvoie le nombre optimal de coups, ou 99 s'il n'y a pas de solution.
C'est très rapide mais pourrait être joué beaucoup plus.
la source