Takuzuは、0
sと1
s を含むセルでグリッドを完成させる必要があるロジックゲームです。グリッドは3つのルールに従う必要があります。
- 3つの水平または垂直の連続したセルを同じにすることはできません。
- 等しい数でなければなりません
0
1
各行と列に sとs。 - 2つの行が同じであったり、2つの列が同じであったりすることはできません。
完成したグリッドを見てみましょう。
0011
1100
0101
1010
あなたが見ることができるように、このボードは、ルールを次の1
、2
そして3
。同じ3つの水平または垂直セルはありません。すべての行と列には同じ数の0
sと1
s が含まれ、2つの行と2つの列は同じではありません。
無効なグリッドを見てみましょう。
110100
010011
011010
101100
100011
001101
このグリッドには多くの問題があります。たとえば、行に5
は3つ0
のsがあり、列に2
は3つ1
のsがあり、その後に3が続き0
ます。したがって、これは有効なグリッドではありません。
仕事:
あなたの仕事は、n
* n
0
の2D配列と1
sボードを検証して、それが有効な完成したTakuzuボードかどうかを確認ことです。
例:
0011
1100
0101
1010
このボードはすべての規則に従っているため、有効なTakuzuボードです。このために真実の値を返さなければなりません。
11
00
これは有効なボード行で1
はありません2
。ルールはルールに従いません。これにはfalsey値を返す必要があります。
100110
101001
010101
100110
011010
011001
これは有効なボードではありません。ルール3により失敗(のみ)します-1行目と4行目は同じです。
110100
001011
010011
101100
100110
011001
これは有効なボードではありません。ルール3が原因で(のみ)失敗します-1列目と4列目は同じです。
011010
010101
101100
010011
100110
101001
これは有効なボードです。
ルールと仕様:
- すべてのボードが次元の平方であると仮定できます。
n * n
ここでn
は、正の偶数の整数です。 - すべてのボードが完成していると想定できます。
- あなたが意味する値を含む2次元配列として入力がかかる場合があります
0
し、1
として、または文字列としてます。 - 真実と偽のボードに対して一貫した真実と偽の値を出力する必要があります。「真実」と「偽」を表す値は同じにはできません。
これはcode-golfなので、バイト単位の最短コードが勝ちです!