それで、私はここ数独のボードを印刷するというこの問題に取り組んできました、そして私はほとんど終わりました、しかし私は最後のステップで立ち往生しています。だから私が持っているのは「リストのリスト」として表される数独ボードです(つまり、ボード= [[1、3、5、7、0、2、0、0、0]、[3、4、5、.. 。]、...]
次の関数を使用して、書式設定を使用して行を印刷することができました。
line i s_board = intercalate " | " . map unwords . chunksOf 3 $ map show a
where
a = s_board!!i
したがって、「ライン0ボード」のような呼び出しを行うと、「1 3 5 | 7 0 2 | 0 0 0」が得られます。これは、部分的に必要なものです。次に、「doブロック」を使用して、必要なボードを出力しようとしました。これは次のようになります。
print = do line 0 board
line 1 board
...
これはコンパイルすらしません、そして私がこのようなことをしたとき:
print = do
line 0 board
line 1 board
適切なリストが複数回印刷されたため、かなり混乱します。ボードを完成させるために、3行ごとに「----------」などの文字列を印刷するなどの追加のフォーマットを含めるように努力したかったのですが、他のものを機能させることさえできませんまだです。これらの問題についてご協力いただければ幸いです。