Вы организуете охоту за сокровищами для своих друзей. Чтобы вести вещи проще, вы хотите нарисовать карту всех мест, где вы спрятали драгоценные предметы.
вход
0 0
Разрешается любая форма ввода, обозначающая список точек, состоящих из (неотрицательных) координат x и y, являющихся верхним левым углом (Примечание. Вы также можете использовать индексирование на основе 1 в своем ответе, пожалуйста, прокомментируйте это, если вы делаете ). Пример:
1 2
3 0
0 1
Вызов
Ваша функция или программа должны быть в состоянии построить карту, обозначающую каждое заданное местоположение с x
меткой, в которой отметка находится в строке y + 1 и столбце x + 1 в выходных данных. Неотмеченные местоположения обозначены как . Карта также состоит из фрейма, где углы равны
+
s, вертикальные линии - |
s, а горизонтальные - -
s. Ваше решение должно выводить наименьший возможный кадр. Карта для входного примера приведена выше:
+----+
| x|
|x |
| x |
+----+
Возможные тестовые случаи
"0 0"
=>
+-+
|x|
+-+
"0 10
5 5
10 0"
=>
+-----------+
| x|
| |
| |
| |
| |
| x |
| |
| |
| |
| |
|x |
+-----------+
""
=>
++
++
"0 0
0 2
2 0"
=>
+---+
|x x|
| |
|x |
+---+
Конечно, это код-гольф , то есть выигрывает решение с наименьшим количеством байтов! Пояснения вашего решения приветствуются.
the input is a list of locations (e.g. nested list, list of tuples, space & newline separated, separate inputs, ect.)
Ответы:
J ,
3734 байтаПопробуйте онлайн!
источник
::empty
так многословно? Что это делает? Почему это не может быть упрощено до 1 байта или около того? (Я не знаю J)JavaScript (ES6), 150 байт
Вводит в виде списка 1-индексированных координат в
[x,y]
формате. Возвращает строку.Попробуйте онлайн!
источник
Хаскелл ,
127123 байтаЭто определяет оператор,
(!)
который принимает список x -координат и список соответствующих y -координат:Попробуйте онлайн!
Ungolfed / Пояснение
Вспомогательная функция
m
ожидает список и возвращает индексы (на основе 1) до максимума, если список пуст, она возвращает[]
:Фактический оператор
(!)
- это просто понимание списка, пересекающее все координаты и выбирающее символили
x
, который соединяется с помощью новых строк:источник
Холст , 22 байта
Попробуй это здесь!
Принимает 1-индексированные входы.
В конце концов решил исправить ошибку, которая меня раздражала целую вечность, и довел ее до 21 байта .
Пояснение (наполовину ASCII-Fied для моно-пространства):
источник
Python 2 ,
151140138 байт-2 байта благодаря Джо Кингу.
Ввод 1-индексирован.
Попробуйте онлайн!
источник
Древесный уголь , 37 байт
Попробуйте онлайн! Ссылка на подробную версию кода. 1-индексироваться. Объяснение:
Пустой ввод в специальном случае путем рисования прямоугольника 2x2 для
+
s.Переставьте входные данные, возьмите максимум каждого столбца (теперь строки) и добавьте 2, чтобы получить размер поля в координатах Древесного угля.
Нарисуй коробку.
Цикл каждой координаты.
Прыгните на свою позицию.
Отметить крестиком.
источник
Stax ,
323124 байтаЗапустите и отладьте его
Принимает 0 основанные индексы как массив
[y, x]
пар.Объяснение:
источник
|S
инструкции окружения и конечной сокращенной карты. (m
) Surround беретa
иb
из стека и производитb+a+b
. И вы можете использоватьm
вместо финала|J
перебирать строки и производить вывод. Напримерz]n+H%
наcM%
. Это кусок, который получает ширину карты, но имеет особый случай для пустых карт. Если вы транспонируете карту до ее измерения, особый случай исчезнет.R ,
133 125122 байтПопробуйте онлайн!
1-индексироваться. Принимает матрицу в качестве аргумента. Сохранено 8 байт благодаря digEmAll, 3 благодаря Giuseppe! Пояснение (более ранняя версия кода):
источник
[<-
непосредственно для удаления скобок.координаты взяты в формате [y, x]
JavaScript (Node.js) ,
191184 байтаПопробуйте онлайн!
источник
a.map(([y,x])
)JavaScript, 180 байт
источник
Java 10,
238223 байта1-индексированные координаты.
Попробуйте онлайн.
Объяснение:
источник
get
/for
для? : S XDC (gcc) ,
246234 байтаБлагодарю потолочный кот за предложение.
Zero-индексироваться. Функция принимает список координат и буфера, находит максимальные значения x и y, заполняет буфер пробелами, генерирует кадр и затем отображает x.
Попробуйте онлайн!
источник
05AB1E ,
4442 байтаПопробуйте онлайн!
X и Y могут поменяться местами, не знаю, имело ли это значение вообще.
Я думаю, что у меня это меньше байтов, но посмотрим ...Нет.источник
F
наLv
, удаливNV
и изменивY
наy
. 41 байтεZ}
можно€à
.Ýv
нетLv
, но все равно хорошая редакция :).Ýv
вместоLv
. Виноват.C (gcc) ,
229220216 байт-9 байт благодаря потолку .
Zero-индексироваться. Принимает координаты как список чисел, где четные числа являются X, а нечетные являются Y.
Попробуйте онлайн!
источник
for(n&&X++-Y++;i<=Y;i+=puts(""))
вместоn&&X++-Y++;for(--i;i++<Y;puts(""))