(60+ satranç etiketli soruya rağmen , basit bir n-queens zorluğumuz yok.)
Satrançta, N-Queens Puzzle şu şekilde tanımlanır: Bir n x n
satranç tahtası ve n
kraliçeler verildiğinde , kraliçeleri satranç tahtasına yerleştirerek iki kraliçenin birbirini tehdit etmeyeceği şekilde düzenleyin. Aşağıda n = 8
Wikipedia'dan ödünç alınmış bir örnek çözüm bulunmaktadır .
Veya ASCII sunumunda:
xxxQxxxx
xxxxxxQx
xxQxxxxx
xxxxxxxQ
xQxxxxxx
xxxxQxxx
Qxxxxxxx
xxxxxQxx
Buradaki zorluk n
, n
-Queens bulmacasına bir çözümün ASCII temsilini almak ve çıktı almak olacaktır . Birden fazla olası çözüm (örneğin, en azından bir döndürme veya yansıma) olduğundan, kodunuzun yalnızca geçerli bir çözüm üretmesi gerekir.
Giriş
Tek bir pozitif tam sayı n
ile n >= 4
uygun olan herhangi bir biçimde . (n = 2 ve n = 3'ün çözümü yoktur ve n = 1 önemsizdir, bu yüzden bunlar hariç tutulur)
Çıktı
Yukarıda belirtildiği gibi N-queens bulmacasına bir çözümün sonuçtaki ASCII gösterimi. Boşlukları ve kraliçeleri temsil etmek için iki farklı ASCII değerini seçebilirsiniz. Yine, bu herhangi bir uygun biçimde (tek dize, bir dize listesi, bir karakter dizisi, vb.) Çıktılabilir.
kurallar
- Öncü satırlar veya boşluk satırlarının tümü isteğe bağlıdır ve karakterlerin kendileri doğru hizalandığı sürece karakterler arasındaki boşluktur.
- Kodunuz için daha golfçü olan olası konumları hesaplamak için bir algoritma kullanabilir veya açık "merdiven basamağı" çözüm stilini kullanabilirsiniz.
- Tam bir program veya bir işlev kabul edilebilir. Bir işlev varsa, çıktıyı yazdırmak yerine döndürebilirsiniz.
- Mümkünse, diğer kişilerin kodunuzu deneyebilmesi için lütfen bir çevrimiçi test ortamına bağlantı ekleyin!
- Standart boşluklar yasaktır.
- Bu kod golfüdür, bu nedenle her zamanki golf kuralları geçerlidir ve en kısa kod (bayt cinsinden) kazanır.
Örnekler
n=4
xQxx
xxxQ
Qxxx
xxQx
n=7
xxQxxxx
xxxxxxQ
xQxxxxx
xxxQxxx
xxxxxQx
Qxxxxxx
xxxxQxx
n=10
xxxxQxxxxx
xxxxxxxxxQ
xxxQxxxxxx
xxxxxxxxQx
xxQxxxxxxx
xxxxxxxQxx
xQxxxxxxxx
xxxxxxQxxx
Qxxxxxxxxx
xxxxxQxxxx