0h n0は非常にシンプルで楽しいゲームで、数独や掃海艇に少し似ています。
ゲームのルール
(可能であれば、ゲームでチュートリアルを使用することをお勧めします。非常にシンプルで便利です)
パズルは、n * n
いくつかの固定ピースといくつかの空のセルを含むボードから始まります。ソルバーは、空のセルをピースで満たし、固定ピースによって課せられるすべての制約を満たす方法を見つけなければなりません。略語で使用するピースのタイプは次のとおりです。
#
赤い部分(青い部分のブロックビュー)O
ブルーピース.
空の場所number
番号付きの青い部分(number
1桁以上の数字です)
番号付きのすべてのピースには、番号とまったく同じ量の青いピースが表示される必要があります。例えば:
#1O#O
...O.
1
作品は一つだけ、他の青の部分を見ることができます。
ピース同士の見方
2つの青い部分が同じ行または列にあり、それらの間に赤い部分がない場合、互いに見えます。例:
(作品が見ることができる、見ることができないS
場所です)O
X
S
S
X#SOSS
#
X
各青いピースには、少なくとも1つの他の青いピースが表示される必要があります。
#O#
うまくいかないが:
#OO
または:
###
仕事する。
デモボード解決
.1..
..1.
....
22#2
右下2はそれ自体の上にしか見えないので、青でなければならず、右上は赤でなければなりません。
.1.#
..1O
...O
22#2
1
は塗りつぶされているため、赤い部分で囲むことができます。
.1##
.#1O
..#O
22#2
左上1
は一方向にしか見えないため、埋めることができます。
O1##
.#1O
..#O
22#2
今、それらの最後2
のものについて。青い部分を2つ重ねることができます。
O1##
.#1O
OO#O
22#2
最後のものはでいっぱいになります #
O1##
##1O
OO#O
22#2
入力
入力は複数行の文字列です。サイズは9x9
末尾スペースなしになります。次のピースタイプがあります。
.
空の#
プリセット赤、変更不可number
プリセット番号、変更不可
(青は入力に含まれないことに注意してください)
出力
出力は入力と同じですが、空(.
)がボードを解決するために赤または青に置き換えられ、数字が青の部分(O
)に置き換えられます。
例
(各パズルに対して複数の解決策が可能ですが、そのうちの1つを表示するだけでよいことに注意してください)
Input:
........4
...3.1...
45...2.3.
..9......
1..6#44..
....4..5.
....4.36.
2.......6
1....4...
Output:
OOO###OOO
OOOO#O#OO
OOO#OO#OO
#OOOO#O##
O#OO#OOOO
O#OOOO#OO
#OOOO#OOO
OO#O#OOOO
O#OOOO#O#
Input:
..7..#...
#...8..11
2....5...
..5...48.
...#...4.
.5...6...
...1.2...
2.....6.8
.7..#....
Output:
OOOOO####
##OOOO#OO
O#OOOO###
OOO#OOOOO
OO##O##O#
#O##OOOOO
#O#O#O#OO
OO#OOOOOO
OOO###O#O
Input:
5.3..33..
...4...23
.6.6.34..
...3#....
....5..4.
.5....3..
7.98.6#.3
.5.6..2..
..6...2..
Output:
OOOOO####
##OOOO#OO
O#OOOO###
OOO#OOOOO
OO##O##O#
#O##OOOOO
#O#O#O#OO
OO#OOOOOO
OOO###O#O
@PeterTaylorと@apsillersに、サンドボックスで助けてくれてありがとう!