Das ist Code Golf. Für diese Herausforderung akzeptiere ich eine Methode (Sie benötigen kein vollständiges Programm), aber die Methodensignatur wird für die Byteanzahl gezählt, und ich möchte die vollständige Signatur sehen (keine Lamdba). Die Eingabe für die Methode ist ein Integer-Array mit 81 Elementen. Der Ausgabe- / Rückgabewert der Methode ist eine Zeichenfolge, die das Array als ASCII-Sudoku-Karte darstellt.
Wenn Sie eine esoterische Sprache verwenden oder etwas, das absolut keine Methoden hat, können Sie sich anpassen, aber wenn die Sprache dies überhaupt unterstützt, möchte ich sehen, dass tatsächlich etwas in ein "echtes" ungolfed Programm eingesteckt wird, selbst wenn das Der Methodenkörper selbst ist ein Schmerz, mit dem man arbeiten muss. Die Anforderung soll nicht Sprachen wie Jelly oder 05AB1E blockieren, sondern es Sprachen wie Java erleichtern, etwas zu erstellen, das für diese Plattform sinnvoll ist.
Für die Eingabe sollten die ganzzahligen Werte 1 bis 9 offensichtliche Bedeutungen haben. Eine 0 sollte immer als leere Zelle interpretiert werden. Sie können auch alles andere außerhalb des Bereichs von 1 bis 9 als leere Zelle interpretieren, dies ist jedoch nicht erforderlich. Die Positionierung vom Array zum Puzzle beginnt oben links und füllt jede Zeile von links nach rechts, bevor zur nächsten Zeile übergegangen wird.
Für die Felder möchte ich doppelte Linien um die Außenseite und zwischen jeder 3x3-Region und einzelne Linien zwischen anderen Zellen. Diese sollten mit Strichzeichen gezeichnet werden (wenn Ihr E / A-Format Zeichenfolgen als Folge von Bytes und nicht als Folge von Zeichen darstellt, sollten Sie sie in einer bekannten Codierung wie UTF-8 oder Codepage 347 darstellen).
Für diese Herausforderung bitte ich Sie NICHT , das Sudoku-Puzzle zu generieren. Das ist der Eingang für die Funktion. Ich bitte Sie NICHT , das Rätsel zu lösen. Ich bitte Sie nur, eine Zeichenfolge zu erstellen, um zu "zeichnen", was Sie erhalten (in so wenigen Bytes wie möglich).
Beispiel Eingabe:
Werte für das Array:
{ 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}
Die Werte können den für Ihre Sprache natürlichen Mechanismus verwenden: int [], ArrayList, sequence, tuple, string of digits, was auch immer, solange Sie für jede Zelle einen Wert in der Eingabe haben (keine Zuordnungen nur für bestückte Zellen zu Positionen) ). Denken Sie daran, dass die Eingabe bereitgestellt wird ... sie ist nicht Teil Ihrer Byteanzahl. Die Eingabe kann jedoch ein beliebiges Sudoku-Puzzle darstellen, und das Puzzle hat möglicherweise nicht einmal eine gültige Lösung . Sie bekommen davon ausgehen , dass Puzzle ist bedruckbar. Sie werden zum Beispiel mit 82 Elementen nichts bekommen.
Sie können auch von einer angemessenen Schriftart mit fester Breite ausgehen.
Entsprechende Ausgabe:
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ║ 8 │ 5 │ ║ │ │ 2 ║ 4 │ │ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ 7 │ 2 │ ║ │ │ │ ║ │ 9 ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ ║ │ 4 ║ ║ │ │ ║ │ │ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ║ ║ │ ║ 1 │ │ 7 │ │ │ 2 ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ 3 │ │ 5 ║ │ │ ║ 9 │ │ │ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ │ ║ 4 │ │ ║ │ │ ║ │ │ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ Es werden 8 bis 7 Punkte vergeben ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ │ ║ 1 │ 7 ║ ║ │ │ ║ │ │ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ ║ │ ║ │ 3 │ 6 ║ │ 4 │ │ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝