Takuzu, 0
s ve 1
s içeren hücreleri içeren bir tabloyu tamamlamanız gereken bir mantık oyunudur . Şebeke 3 kuralı takip etmelidir:
- Hiçbir üç yatay veya dikey ardışık hücre aynı olamaz.
- Her satır ve sütunda eşit sayıda
0
s ve1
s olmalıdır . - İki satır aynı olamaz ve iki sütun aynı olamaz.
Bitmiş bir şebekeye bakalım:
0011
1100
0101
1010
Gördüğünüz gibi, bu tahta kuralı izler 1
, 2
ve 3
. Aynı üç yatay veya dikey hücre yok, tüm satırlar ve sütunlar eşit sayıda 0
s ve 1
s içeriyor ve iki satır yok ve iki sütun aynı değil.
Geçerli olmayan bir tabloya bakalım:
110100
010011
011010
101100
100011
001101
Bu şebekeyle ilgili bir sürü sorun var. Örneğin, satırın arka arkaya 5
üç 0
sn, sütununun arka arkaya 2
üç 1
sn, ardından üç 0
sn. Bu nedenle, bu geçerli bir ızgara değil.
Görev:
Göreviniz, 2B n
* n
0
s ve 1
s dizileri verilen ve geçerli bir bitmiş Takuzu kurulu olup olmadığını görmek için tahtayı doğrulayan bir program yapmaktır.
Örnekler:
0011
1100
0101
1010
Bu kurul tüm kuralları takip eder ve bu nedenle geçerli bir Takuzu kurulu. Bunun için gerçek bir değer döndürmelisiniz.
11
00
Bu geçerli bir tahta değil - satır 1
kurallara uymuyor 2
. Bunun için bir falsey değeri döndürmelisiniz.
100110
101001
010101
100110
011010
011001
Bu geçerli bir tahta değil, kural 3 nedeniyle başarısız oluyor (ilk ve dördüncü sıralar aynı.
110100
001011
010011
101100
100110
011001
Bu geçerli bir tahta değil, kural 3 nedeniyle başarısız oluyor (ilk ve dördüncü sütunlar aynı.
011010
010101
101100
010011
100110
101001
Bu geçerli bir kurul.
Kurallar ve Özellikler:
- Tüm panoların boyutların kare olduğunu ve pozitif bir tamsayı
n * n
olduğu varsayılabilirn
. - Tüm panoların bittiğini varsayabilirsiniz.
- Sen anlamına değerlerini içeren bir 2D dizi olarak girdi alabilir
0
ve1
ya bir dize olarak. - Truthy ve falsey panoları için tutarlı truthy ve falsey değerleri vermelisiniz ve "truthy" ve "falsey" yi temsil eden değerler aynı olamaz.
Bu kod golf , bayt cinsinden en kısa kod kazanır!