Даны два произвольных числа A, B. Напечатайте число B как Цифровой светодиодный образец, где A - масштаб.
вход:
1 2320451640799518
Ouput:
_ _ _ _ _ _ _ _ _ _ _ _
_| _| _|| ||_||_ ||_ |_|| | ||_||_||_ ||_|
|_ _||_ |_| | _| ||_| ||_| | | | _| ||_|
вход:
2 23
Ouput:
__ __
| |
__| __|
| |
|__ __|
Правила:
Используйте STDIN / STDOUT для ввода / вывода
Код с большинством голосов "за" выигрывает. В случае Tie будет принят самый короткий код
Ответ, получивший наибольшее количество голосов, будет принят 01/02/2014 (принят этот ответ с наибольшим количеством голосов 12)
ascii-art
popularity-contest
Был ли я
источник
источник
9
в своем ответе , так как мне это нравится больше :-)Ответы:
Коммодор 64 Бейсик
ПЕТСКИИ по искусству правила :)
Выход:
источник
Питон 3,
286 282280Да, я играл в гольф в этом Отличный вызов!
Кроме того, вот версия Python 2 весом всего 273 байта!
Не обновлять этот больше с дальнейшим оригинальным исходным кодом. Это было создано, когда исходный источник был 282 байта (версия Python 3).
Это может быть обманом, поэтому я добавляю его отдельно. Дайте мне знать, считается ли это действительным или нет.
источник
Haskell (389 символов)
Решение использует 7 массивов, по одному на каждый сегмент массива, используя имена из этого изображения:
, Значение
a !! 4
будет символом, который должен отображаться в этой позиции для числа 4.Значения умножаются на шкалу, где это необходимо (используя
r
иrp
для репликации), и, наконец, распечатываются.Код
Пример использования
источник
C
249226 символовГольф решение в C:
С добавленным пробелом:
Заметки:
Я предоставлю объяснение того, как это работает, если кого-то волнует.
источник
#include <stdio.h>
(поскольку он будет компилироваться без него.) Вы также можете поместить одно целое числоmain()
, напримерmain(x)
, сбрить 1 байт - хотя это недопустимо подпись и положитьscanf
внутрьfor
:for(scanf("%d %98s", &s, &i); …)
бритье еще одного. - Посмотрите здесь .#include
, переместилscanf
внутриfor
, удалены ненужные&
ин&i
, и поместитьint
переменные в глобальной области для использования инициализации статического 0. Код должен все еще быть законным C89, но я не проверил полностью. Я считаю , положив одинint
вmain
это не законно, так что я оставил это.int
глобальные переменные. Также%98s
может быть%s
(для более длинных струн вы все равно терпите неудачу, имеет ли значение каким образом?)Ruby 2.0
Быстрая и (не очень) наивная рубиновая реализация.
Быстрое объяснение:
Сначала я объявляю строки, представляющие цифры включения и выключения для горизонтальных и вертикальных полос.
Затем я читаю шкалу и цифры.
Затем я объявляю массив необходимого размера, чтобы хранить достаточно строк для данного масштаба. Странная строка на самом деле является отображением 7-битных значений, представляющих, какие светодиоды нужно включить для каждой цифры.
Далее для каждой цифры я заполняю выходной массив сверху вниз с учетом горизонтального масштабирования.
Последний цикл должен заполнить строки, которые имеют только вертикальные столбцы, которые могут быть просто сгенерированы из среднего и нижнего рядов путем удаления горизонтальных столбцов.
Наконец, я печатаю выходной массив!
источник
Python 2.6 без импорта. Я бы сказал, что привлекательность этого решения заключается в использовании шаблонов. К сожалению, я думаю, именно поэтому мне было так тяжело его сжать.
И немного короче (308 символов):
источник
(Редактировать: это решение теперь недействительно, потому что семантика
銻
инструкции изменилась. Я не осознавал, что уже использовал инструкцию, когда менял ее. Однако вы можете исправить эту программу, просто изменив ее на более новая инструкция壹
.)Скриптинг - 85 символов①
Входные данные:
Выход:
②
Входные данные:
Выход:
источник
銻
чтобы壹
, но это было бы сделать эту запись , потому что обман壹
был изобретен после того, как эта проблема была опубликована.C # (
480443 символа)Расширенная версия:
Моя идея состояла в том, чтобы разбить задачу на 5 горизонтальных линий, которые в свою очередь разделены на левую, правую и среднюю части для каждого персонажа.
источник
;
(480); Вы можете написатьAction<z,z,z,int>q=(l,m,r,n)=>{...};
(470); вы можете сделать первый параметр и сделать внутреннюю (467); и, наконец, вы можете объявить и повторно использовать (465). Это самое маленькое, что я мог сделать до сих порh
char
""+
h
z d="134579",b="1237"
Я думаю, что есть очень короткие решения, но так как это не код-гольф, я вполне доволен!
Этот скрипт PHP будет принимать два числа
a
,b
от STDIN и echob
в формате LED, вa
размере.РЕДАКТИРОВАТЬ: Глядя на предыдущий пример вывода, я ошибочно предположил, что расстояние между цифрами должно быть
a
размером с размер. Это было исправлено в объявлении OP о том, что места не требуется.источник
C #,
435359473 байтаправок:
Вот код для игры в гольф (с добавлением разрывов строк и пробелов):
источник
using System;using S=System.String;class P{static void Main(){Action<S[]>D=n=>{var r=int.Parse(n[0]);Func<int,int,bool>F=(i,c)=>("ϭͱͼΟŅŭϻ"[i]&1<<c-48)>0;S s="",v="|",w=" ",x=new S('_',r),y=new S(' ',r);foreach(var c in n[1])s+=w+(F(0,c)?x:y)+w+w;for(int j=1;j<6;j+=3)for(int i=r;i-->0;){s+="\n";foreach(var c in n[1])s+=(F(j,c)?v:w)+(i<1&&F(j+1,c)?x:y)+(F(j+2,c)?v:w)+w;}Console.Write(s);};D(Console.ReadLine().Split(' '));}}
System
пространство именC (
561492 байта)Автор Фрмар. Он прислал мне свой ответ на прошлой неделе (он еще не создал свой аккаунт).
492 байта, но немного более запутанный:
Предыдущая версия, использующая 561 байт:
Оригинальная версия от frmar (623 байта):
Компиляция:
Примеры использования по умолчанию
0123456789
номера по но разных размеров:Другие примеры:
Большие размеры:
источник
Perl + FIGlet + BRA * : 54 символа
Я подумал, что это будет довольно легко сделать с FIGlet , но, похоже, не было подходящих шрифтов для этой цели. Так что я сделал немного :-)
Вот как это выглядит на терминале:
* BRA: вопиющее нарушение правил
источник
PERL,
261 244 187166 символовНемного битовой философии кодирования рулез :-)
Код с добавлением пробела:
Perl должен быть вызван с
-n
:Заметки:
Gl+%<UWm7=
:-) Один символ соответствует одной цифре, кодируются 3 позиции по 3 последовательных символа в" _ _|_| |_ |"
строке.c
, которая также выполняет вертикальное масштабирование для второй и третьей строки.c
.Моя
sed
программа не может масштабировать, но выглядит намного лучше, не так ли? :-)В значительной степени идея, которую использует мой скрипт на PERL, но в PERL это намного ужаснее. Обратите внимание, что для моей программы sed я предпочел использовать
9
символ подчеркивания в последней строке, чтобы он был похож на перевернутый 6.источник
C #,
386382364 символа / 374 байта (UTF-8) и (много?) Места для улучшения ...РЕДАКТИРОВАТЬ Дерьмо ... Я пропустил "масштаб" часть
Я сделаю еще один снимок, если доберусь до этого ..
источник
J - 147
95знаковДобавлено необходимое масштабирование:
Аннотированная версия:
Пример:
источник
Ruby, 126 символов ASCII
Таким образом, каждая цифра кодируется как битовый массив в трети, причем каждая третья представлена восьмеричной цифрой.
Поскольку для всех цифр установлен бит 64 или 32, диапазон составляет от 044 до 177 восьмеричных. К сожалению, 177 является непечатаемым символом DEL, поэтому магическая строка содержит цифры 2 под требуемым растровым кодом, и мы должны добавить 2 обратно в функцию.
Неуправляемый в тестовой программе
Выход
источник
Perl 6,
284241237Предыдущие решения:
источник