Эта:
это планер .
В игре жизни Конвея планер - известная фигура, которая быстро распространяется по доске. Для сегодняшнего испытания мы нарисуем художественную доску Game of Life ASCII и поместим на нее планер.
Доска, с которой мы начинаем, это:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Эта доска полностью состоит из труб |
и подчеркиваний _
и имеет размер 10х10. Вы должны написать программу или функцию, которая принимает два целых числа, «x» и «y», и выводит эту же доску с планером в этих координатах. Например, если у вас был планер в позиции (1, 1)
(с индексом 0), вы должны вывести следующее:
|_|_|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|_|_|_|*|_|_|_|_|_|_|
|_|*|*|*|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Вы можете предположить, что планер никогда не будет размещен вне границ, поэтому x и y всегда будут в [0-7]
диапазоне. Вы также можете принять координаты 1 с индексами, но вы должны указать это в своем ответе. В этом случае входы всегда будут в [1-8]
диапазоне. Вот несколько примеров (все с 0 индексами):
0, 0:
|_|*|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|*|*|*|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
7, 7:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
7, 4:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
5, 2:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|*|_|_|_|
|_|_|_|_|_|_|_|*|_|_|
|_|_|_|_|_|*|*|*|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Как обычно, вы можете принять IO в любом разумном формате. Это включает, но не ограничивается строкой с символами новой строки, массивом строк, двумерным массивом строк или записью в файл / STDOUT. Вы также можете выбрать, в каком порядке брать x и y .
Поскольку это код-гольф , стандартные лазейки запрещены и делают самый короткий код, какой только можно!
the glider is a famous pattern that slowly traverses across the boar.
, Медленно? Это самый быстрый диагональный движущийся объект в GoL. Он достигает 1/4 скорости света.Ответы:
MATL ,
353230 байтКод содержит непечатаемые символы. Ввод на основе 0. Попробуйте онлайн!
источник
V ,
31, 30 байтПопробуйте онлайн!
HexDump:
Он принимает входные данные в качестве аргументов программы и индексируется 1.
Объяснение:
источник
Желе ,
3735 байтПопробуйте онлайн!
Как это устроено
источник
Python 2 , 151 байт
Будет гольф больше.
Попробуйте онлайн!
источник
[*'|_'*10+'|']
вместоlist()
вызова.Perl 6 , 88 байт
Комплексные числа используются для представления координат.
^10 »*» i X+ ^10
генерирует сетку всех комплексных чисел с целочисленными компонентами от нуля до девяти.Возвращает список строк, каждая из которых содержит одну строку.
источник
»
? Как это закодировано?>>
но это то же количество байтов, что и в гильемете, поэтому для игры в гольф я предпочитаю последнее, так как оно выглядит немного класснее ИМХО. Что касается того, что он делает, он превращает окружающий его оператор в «гипероператор», который попарно применяется к спискам или значениям с обеих сторон. Здесь он умножает каждый элемент диапазона0-9
наi
, давая0, i, 2i, ..., 9i
.Haskell , 96 байт
Принимает два целых числа (
x
иy
) и возвращает списокString
s, то есть двухмерный список типа[[Char]]
.Тестирование:
источник
Рубин , 87 байт
Попробуйте онлайн!
источник
Математика,
115113 байтовгде
Это принимает вклад в
{row, col}
формате и индексируется 1, но может быть преобразован в индекс 0 без добавления байтов.Некоторые заметки:
\n
символ новой строки, занимает 1 байт.
является\[Function]
, занимает 3 байта.
есть\[Transpose]
, занимает 3 байта.Обратите внимание, что «массив строк» разрешен, поэтому я могу просто удалить
Riffle
, даетMathematica,
9897 байтисточник
Java 8,
165144 байтаОбъяснение:
Попробуй это здесь.
источник
JavaScript (ES6), 99 байт
Принимает ввод через карри:
f(5)(2)
для x = 5, y = 2. Координаты с нулевой индексацией.Тестовый фрагмент
источник
СОГЛ , 23 байта
примечание: ожидается, что вход будет 1 проиндексирован
Объяснение:
источник
Python 2 , 133 байта
Попробуйте онлайн!
источник
Древесный уголь , 28 байт
Попробуйте онлайн! Ссылка на подробный режим для описания.
источник
|_
перед\n
сохранением сжатый байт. (Я пробовал несколько разных способов печати планера, но ни один из них не сохранил байты.)