Takuzu, 0s ve 1s 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
0s ve1s 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, 2ve 3. Aynı üç yatay veya dikey hücre yok, tüm satırlar ve sütunlar eşit sayıda 0s ve 1s 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üç 0sn, sütununun arka arkaya 2üç 1sn, ardından üç 0sn. Bu nedenle, bu geçerli bir ızgara değil.
Görev:
Göreviniz, 2B n* n 0s ve 1s 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 1kurallara 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 * nolduğu varsayılabilirn. - Tüm panoların bittiğini varsayabilirsiniz.
- Sen anlamına değerlerini içeren bir 2D dizi olarak girdi alabilir
0ve1ya 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!