L'obiettivo di questa sfida è determinare se una mossa è una mossa di Dama inglese legale .
Questa sfida utilizzerà una scheda 8x8. Un pezzo mosso dovrebbe essere trattato come un uomo (non un re) che può solo spostarsi in diagonale in avanti. Il tabellone avrà 0 o più pezzi neri e 1 o più pezzi bianchi. Un pezzo bianco sarà attualmente in movimento. Il pezzo bianco può "saltare" su un pezzo nero in diagonale di fronte se il quadrato direttamente dietro è vuoto. È possibile fare un ulteriore salto da quella posizione se c'è un altro pezzo nero in entrambe le direzioni in diagonale di fronte ad esso. Capture è obbligatorio, quindi è illegale non fare un salto disponibile. Tuttavia, non è obbligatorio seguire un percorso che massimizzi il numero di salti. Fondamentalmente, questo significa che se fai un salto e c'è un altro possibile salto dalla posizione finale, quella mossa è illegale. Le posizioni dei pezzi utilizzano il seguente schema di numerazione:
Regole
ingressi:
Un elenco di numeri che rappresentano pezzi neri.
Un elenco di numeri che rappresentano pezzi bianchi.
Una posizione di partenza per il pezzo bianco
La posizione finale per il pezzo bianco
Produzione:
- Un valore di verità se lo spostamento è valido, altrimenti un valore di falsità
Puoi presumere che un pezzo bianco occuperà sempre la posizione di partenza.
Se conveniente, puoi presumere che il primo pezzo bianco nella lista dei pezzi bianchi conterrà la posizione iniziale invece di accettare l'ingresso 3.
Regole standard per il golf. Vince il minor numero di byte.
Casi test
Per illustrare, O è la posizione iniziale, X è la posizione finale, B sono pezzi neri e W sono pezzi bianchi
Black pieces: []
White pieces: [5]
Move: (5, 1)
Output: True
Single move no jump
X _ _ _
O _ _ _
B: [6]
W: [9]
M: (9, 2)
O: True
Single jump
_ X _ _
_ B _ _
O _ _ _
B: [2, 6]
M: (9, 2)
O: False
Illegal ending position on top of black piece
_ X _ _
_ B _ _
O _ _ _
B: [7, 14]
W: [17]
M: (17, 3)
O: True
Double jump
_ _ X _
_ _ B _
_ _ _ _
_ B _ _
O _ _ _
B: [7, 14]
M: (17, 10)
O: False
Illegal jump, must take the next jump as well
_ _ _ _
_ _ B _
_ X _ _
_ B _ _
O _ _ _
B: [4]
W: [8]
M: (8, 3)
O: False
Illegal jump across the board
_ _ _ X
B _ _ _
O _ _ _
B: [6, 7]
W: [6]
M: (10, 1)
O: True
Split decision p1
X _ _ _
_ B B _
_ O _ _
B: [6, 7]
M: (10, 3)
O: True
Split decision p2
_ _ X _
_ B B _
_ O _ _
B: [2]
W: [1]
M: (1, 3)
O: False
Sideways Jump
O B X _
B: [6]
W: [1]
M: (1, 10)
O: False
Backwards Jump
O _ _ _
_ B _ _
_ X _ _
B: [6]
W: [9, 2]
M: (9, 2)
O: False
Illegal ending position on top of white piece
_ X _ _
_ B _ _
O _ _ _
B: []
W: [9, 6]
M: (9, 2)
O: False
Illegal jump over white piece
_ X _ _
_ W _ _
O _ _ _
B: [8, 15, 23, 24]
W: [27]
M: (27, 4)
O: True
Split decision long path
_ _ _ X
_ _ _ B
_ _ _ _
_ _ B _
_ _ _ _
_ _ B B
_ _ W _
B: [8, 15, 23, 24]
W: [27]
M: (27, 20)
O: True
Split decision short path
_ _ _ _
_ _ _ B
_ _ _ _
_ _ B _
_ _ _ X
_ _ B B
_ _ W _

B=[8,15,23,24];W=[27]con ciascuno diM=[27,4]eM=[27,20]1. darà un cambio di direzione. 2 risponderà a una domanda che ho: sono entrambi validi o devono essere presi più a lungo? ("Catturare è obbligatorio, quindi è illegale non fare un salto disponibile" suggerisce che entrambi sono validi, anche se non so perché tu renda illegale non catturare se possibile, quindi forse intendi prendere come più pezzi possibili?)