Bu zorluğun amacı, bir hamlenin yasal bir İngiliz Daması hamlesi olup olmadığını belirlemektir .
Bu meydan okuma 8x8 bir tahta kullanacak. Taşınan bir parça, sadece çapraz olarak ilerleyebilen bir adam (kral değil) olarak ele alınmalıdır. Tahtada 0 veya daha fazla siyah ve 1 veya daha fazla beyaz parça olacak. Şu anda bir beyaz parça hareket ediyor olacak. Doğrudan arkasındaki kare boşsa, beyaz parça çapraz olarak önündeki siyah bir parça üzerine "atlayabilir". Önünde çapraz olarak herhangi bir yönde başka bir siyah parça varsa bu konumdan daha fazla atlamak mümkündür. Yakalama zorunludur, bu nedenle mevcut bir atlama yapmamak yasadışıdır. Ancak, atlama sayısını en üst düzeye çıkaran bir yol almak zorunlu değildir. Temel olarak, bu bir atlama yaparsanız ve bitiş pozisyonundan başka bir olası atlama varsa o hareketin yasadışı olduğu anlamına gelir. Parça konumları aşağıdaki numaralandırma şemasını kullanır:
kurallar
girişler:
Siyah parçaları temsil eden sayıların listesi.
Beyaz parçaları temsil eden sayıların listesi.
Beyaz parça için başlangıç pozisyonu
Beyaz parçanın bitiş konumu
Çıktı:
- Hareket geçerliyse gerçek bir değer, aksi takdirde bir falsey değeri
Beyaz bir parçanın her zaman başlangıç pozisyonunu işgal edeceğini varsayabilirsiniz.
Uygunsa, beyaz parça listesindeki ilk beyaz parçanın, giriş 3'ü kabul etmek yerine başlangıç konumunu içerdiğini varsayabilirsiniz.
Standart kod golf kuralları. En az bayt kazanır.
Test Durumları
Bunu göstermek için, O başlangıç pozisyonudur, X bitiş konumudur, B siyah parçalardır ve W beyaz parçalardır
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]
her biriyleM=[27,4]
veM=[27,20]
o yönde bir değişiklik verecektir 1.. 2 bu soruya cevap verecek: ikisi de geçerli mi yoksa daha uzun süre alınmalı mı? ("Yakalama zorunludur, bu nedenle mevcut bir atlama yapmamak yasadışıdır") her ikisi de geçerli, ancak neden mümkünse yakalamamanızı yasadışı yaptığınızı bilmiyorum, belki belki mümkün olduğunca çok parça?)