これはコードゴルフです。この課題では、メソッドを受け入れます(完全なプログラムは必要ありません)が、メソッドシグネチャはバイトカウントにカウントされるため、完全なシグネチャ(lamdbaではなく)を表示したいです。メソッドの入力は、81個の要素を持つ整数配列です。メソッドからの出力/戻り値は、ASCII数独ボードとして配列を表す文字列です。
難解な言語またはメソッドをまったく持たないものを使用している場合は、適応できますが、言語がこれをサポートしている場合は、たとえメソッド本体自体は作業が苦痛です。要件は、Jellyや05AB1Eなどの言語をブロックすることではなく、Javaのような言語がそのプラットフォームにとって意味のあるものを簡単に作成できるようにすることです。
入力の場合、整数値1〜9には明確な意味があります。0は常に空白セルとして解釈される必要があります。また、1〜9の範囲外のものを空白セルとして解釈することもできますが、これは必須ではありません。配列からパズルへの配置は左上から始まり、各行を左から右に埋めてから次の行に移動します。
ボックスの場合、外側と各3x3領域の間に二重線が、他のセル間に単一線が必要です。これらは線画文字で描画する必要があります(I / O形式が文字列ではなく文字列をバイト列として表す場合、UTF-8やコードページ347などのよく知られたエンコーディングで表現する必要があります)。
この挑戦のために、私はあなたに数独パズルを生成することを求めていません。それが関数の入力です。パズルを解くことをお願いしているのではありません。与えられたものを(できる限り少ないバイト数で)「描画」する文字列を生成するようにお願いしています。
入力例:
配列の値:
{ 8, 5, 0, 0, 0, 2, 4, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 2, 3, 0, 5, 0, 0, 0, 9, 0, 0 ,0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 7, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 4, 0}
値は、あなたの言語にとって自然なメカニズムを使用することができます:int []、ArrayList、sequence、tuple、数字の文字列、何でも、すべてのセルの入力に値がある限り(位置に移入されたセルのみのマップはありません) )。入力が提供されることを忘れないでください...それはあなたのバイト数の一部ではありません。しかし、入力は任意の数独パズルを表している可能性があり、パズルには有効なソリューションさえない場合があります。あなたはパズルが印刷可能であると仮定するようになります。たとえば、82個の要素を持つものは取得できません。
また、合理的な固定幅フォントを想定することもできます。
対応する出力:
╔===╤===╤===╦===╤===╤===╦===╤===╤===╗ ║8│5│║││2║4││║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║7│2│║││║││9║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║││4║││║││║ ╠===╪===╪===╬===╪===╪===╬===╪===╪===╣ │││║1││7║││2║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║3││5║│││║9││║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║│4│║││║││║ ╠===╪===╪===╬===╪===╪===╬===╪===╪===╣ ║││║│8│║│7│║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║│1│7║││║││║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ │││║│3│6║│4│║ ╚===╧===╧===╩===╧===╧===╩===╧===╧===╝