Это код гольф. Для этой задачи я приму метод (вам не нужна полная программа), но сигнатура метода действительно учитывается в счетчике байтов, и я хочу увидеть полную сигнатуру (не lamdba). Вход для метода представляет собой целочисленный массив с 81 элементом. Выходное / возвращаемое значение метода представляет собой строку, которая представляет массив как доску ascii sudoku.
Если вы используете эзотерический язык или что-то, что абсолютно не имеет методов, вы можете адаптироваться, но если язык вообще поддерживает это, я хочу видеть, что что-то может быть действительно подключено к «настоящей» неигровой программе, даже если Сам метод тела - боль, с которой нужно работать. Это требование не предназначено для блокировки языков, таких как Jelly или 05AB1E, а для того, чтобы языки, такие как Java, могли создавать что-то, что имеет смысл для этой платформы.
Для ввода целочисленные значения 1-9 должны иметь очевидные значения. 0 всегда следует интерпретировать как пустую ячейку. Вы также можете интерпретировать что-либо еще вне диапазона 1-9 как пустую ячейку, но это не обязательно. Позиционирование от массива до головоломки начинается в верхнем левом углу и заполняет каждый ряд слева направо, прежде чем перейти к следующему ряду.
Для ящиков я хочу двойные линии вокруг внешней стороны и между каждой областью 3х3, а также одиночные линии между другими ячейками. Они должны быть нарисованы с помощью символов рисования линий (если ваш формат ввода-вывода представляет строки в виде последовательности байтов, а не последовательности символов, вы должны представлять их в хорошо известной кодировке, такой как 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 │ ║ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝