Giriş
Oyun Xiangqi da Çinli satranç olarak bilinen, bir satranç gibi Çin, Vietnam, Tayvan ve diğer Doğu Asya ülkelerinde popüler bir oyun olduğunu. Xiangqi'de iki tarafın renkleri kırmızı ve siyahtır. Xiangqi'de yedi parça vardır: general ( G
), danışman ( A
), fil ( E
), at ( H
), araba ( R
), top ( C
) ve asker ( S
). Bu zorluğun amaçları için, büyük harfler kırmızı ve küçük harfler siyah olarak kabul edilir. Bu parçaların çoğunun Batı satrancında kaba bir eşdeğeri var, ancak tamamen benzersiz bir parça var: top.
Topu satranç bir kale veya Xiangqi bir arabasına (X ya da Y eksenleri ya ilgili olarak herhangi sayıda hareketli) gibi hareket eder, ancak bu şekilde saldırtılamaz. Bunun yerine, X veya Y eksenleri boyunca (hareket ettiği gibi) herhangi bir rengin (arkadaş veya düşman) bir parçasının üzerine atlayarak ve daha sonra yakaladığı zıt renkli parçaya inerek saldırır . Tüm satranç ve xiangqi taşları gibi topların da kendi renklerini yakalayamayacağını unutmayın.
Örneğin, aşağıdaki şemada, topun ( C
) hareket edebileceği boşluklar işaretlenmiştir *
ve atlayabileceği ve yakalayabileceği boşluklar X
, orada siyah / küçük bir parça olduğu varsayılarak işaretlenmiştir .
....X....
.........
.........
....h....
....*....
****C**aX
....E....
....X....
....g....
....R....
Meydan okuma
Bir xiangqi kartı ve bir topun koordinatlarını girdi olarak verildiğinde, topun hareket edebileceği veya atlayabileceği koordinatların bir listesini veren bir program veya işlev yazın.
Tüm G / Ç formatı esnektir.
Xiangqi kartı için kabul edilebilir biçimler arasında satır satırıyla ayrılmış bir dize, bir dize listesi ya da içinde olmayan başka bir ayırıcı bulunan bir dize bulunur aceghrsACEGHRS.
. Tahtanın her zaman bir xiangqi tahtasının boyutu olan 9x10 olacağını varsayabilirsiniz.
Kartın içeriği, tahtadaki .
boş noktaları temsil eden bir dizi noktadan ( ) ve parçaları temsil eden karakterlerden oluşacaktır . Parça-karakter eşlemesi aşağıdaki gibidir:
A -> advisor
C -> cannon
E -> elephant
G -> general
H -> horse
R -> chariot
S -> soldier
Büyük harfler kırmızı parçaları, küçük harfler siyah parçaları temsil eder. Burada listelenmeyen karakterler (yani içinde değil aceghrsACEGHRS.
) tahtada görünmez.
Giriş koordinatının biçimi esnektir ve çıkış koordinatlarının biçimiyle eşleşmesi gerekmez. İki tamsayı öğesinin bir listesi, 2-demet, herhangi bir ayırıcılı iki sayı veya iki karakter olabilir. Ayrıca 0-indeksli veya 1-indeksli olabilir. Karttaki koordinatın her zaman bir top ( C
veya c
) olarak çözüleceğini varsayabilirsiniz .
Topun atlayabileceği ve hareket edebileceği koordinatlar çıktıdaki aynı listede görünmelidir; ikisi arasında ayrım gerekli değildir. Her bir çıkış koordinatı için kabul edilebilir formatlar, giriş koordinatındaki formatlarla aynıdır. Koordinatlar yeni satırla ayrılmış, liste olarak çıktı veya başka herhangi bir gösterim olabilir. Özel bir düzen gerekli değildir; düzenin deterministik olması bile gerekmez.
Topun aynı renkteki (kasa) bir parçasına atlamanın yasal olmadığını ve bu nedenle çıktıda görünemeyeceğini unutmayın.
Test senaryoları
Tüm test vakalarının xiangqi pozisyonları mümkün olmadığını unutmayın.
Input board
Input coordinate (0-indexed)
List of output coordinates
.........
.........
.........
.........
.........
....C....
.........
.........
.........
.........
(4, 5)
[(0, 5), (1, 5), (2, 5), (3, 5), (5, 5), (6, 5), (7, 5), (8, 5), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4), (4, 6), (4, 7), (4, 8), (4, 9)]
.........
.....G...
.........
.........
.....e...
.........
.........
h..R.c..S
.....a...
.........
(5, 7)
[(4, 7), (6, 7), (7, 7), (5, 6), (5, 5), (5, 1)]
..s......
..A...e..
.........
EACCcsh.H
..r......
.....S...
......s..
....C....
..g......
(2, 3)
[(2, 0), (2, 2), (4, 3), (2, 9)]
rheagaehr
.........
.c.....c.
s.s.s.s.s
.........
.........
S.S.S.S.S
.C.....C.
.........
RHEAGAEHR
(7, 7)
[(2, 7), (3, 7), (4, 7), (5, 7), (6, 7), (8, 7), (7, 0), (7, 3), (7, 4), (7, 5), (7, 6), (7, 8)]
puanlama
Bu kod golf, böylece en kısa cevap (bayt cinsinden) kazanır. Mutlu golf!