Введение
Как известно, в 2017 году Финляндия празднует свое 100-летие независимости. Чтобы отметить это событие, вы должны изготовить финский флаг для всех желающих.
Вызов
Создайте программу или функцию, которая производит флаг Финляндии (серая рамка предназначена только для презентаций):
Флаг спецификации
- Соотношение флага
18:11
, с крестом3
толщиной в единицы, дает набор горизонтального соотношения5:3:10
и набор вертикального соотношения4:3:4
. - Размер изображения должен быть не менее
180 x 110
пикселей, а в случае ASCII -90 x 55
символов. - Для синего нет официального цвета RGB, но используйте ближайшее приближение
(0, 53, 128)
. Если ваша система не поддерживает значения RGB, используйтеblue
. - Для белого цвета используйте RGB
(255, 255, 255)
илиwhite
.
Не так быстро
Поскольку нарисовать финский национальный флаг было бы проще, чем прошлогодняя исландская задача , нам придется немного увеличить сложность. Учитывая, что День независимости Финляндии - 6 декабря, десятичное число 100
должно появляться где-то на флаге, когда дата в Финляндии ( UTC + 02: 00 ) является 2017-12-06
более поздней (ваш код не должен предполагать, что машина, на которой он работает, установлена на конкретный часовой пояс). До даты номер не должен быть там. Номер должен быть напечатан черным (RGB (0, 0, 0)
или black
), но его расположение и параметры шрифта зависят от вас.
Пример такого рендера (опять же игнорируем границу):
В целях тестирования было бы неплохо включить две дополнительные версии вашего решения: одну с фиксированной датой в прошлом и одну в будущем.
правила
Стандартные лазейки запрещены, как и встроенные изображения флагов / библиотеки. Кроме того, ваш код не должен принимать никаких данных.
Финнам не нравятся разговоры, а это код-гольф , так что не теряйте персонажей!
источник
#
в случае искусства ASCII ? А потом вставить100
где-нибудь символы ?Ответы:
C (Windows), 361 байт
раскатали:
Выход:
Выводится когда
UTC time >= 2017-12-05-22-00
:Добавьте следующее в код после,
d=gmtime(&n);
чтобы попробовать это:источник
PHP + SVG (HTML5),
147137123 байтаSVG код Нила
https://codegolf.stackexchange.com/a/149850/66061
Обновление: спасибо Shaggy за помощь в экономии 10 байт.
Обновление 2: Умная идея от Ismael Miguel , спасибо за сохранение 14 байтов
Обычный
После 6 декабря +2 часа
источник
time()
дает UTC?1512525600
?1512525600
это2017-12-06T02:00:00+00:00 in ISO 8601
@ Adám и да, time () не зависит от часового пояса.Röda ,
252250 байтПопробуйте онлайн!
источник
C #,
407400277 байтСтранно, как
ForegroundColor =0
это разрешеноСохранено 1 байт благодаря TuukkaX
Сохранено 67 байтов благодаря Адаму
Разряженный для тестирования:
для тестирования 100:
источник
ForegroundColor = 0
допускается, потому что литерал0
конвертируется в любой тип перечисления, как написано в спецификации C # .Mathematica, 129 байт
до .. после ..
Вы всегда можете проверить это на Wolfram Sandbox
(вставьте код и нажмите Shift-Enter)
источник
3721507200
?Python 2 ,
247246230210189 байтПопробуйте онлайн!
Печатает изображение .ppm:
Нормальный флаг
Флаг с 100
источник
datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)
заменить наdatetime.utcnow()>=datetime(2017,12,05,22,0,0)
что-то подобное?time.gmtime
вместо этого для сравнения кортежей (см. Мой ответ)!Python 3,
143,141,135 байтовИспользует экранирование ANSI для цветов, использует пять пробелов или «100» в качестве цветной строки, поэтому мне не нужно специально печатать «100» где-нибудь на флаге. Длина 5 из-за ширины, потому что
90/5 == 90//5
. Используемая строка определяется в строке 1. Затем мы выполняем итерацию 55 round (height), на каждой итерацииv
задается строка с цветом [Blue, BrightWhite] и выбранный индекс является логическимrow<20 or r>34
. Мы снова умножаем этот результат на 5 (размеры по ширине: 25:15:50, поэтому общая ширина равна 90). Затем распечатываем,v + Blue + Blue + Blue + v + v + Black
гдеv
находится синий или яркий белый. Для уточнения печати: ширинаv
- 25 символов, ширина Blue (e%44*3
) - 15, а ширинаv*2
- 50.25+15+50
равен 90, что является шириной и соответствует размерам, необходимым для выполнения задачи! Довольно грязное резюме, но я думаю, что это лучше, чем ничего.источник
Processing.org / Java
191188 байт-3 байта благодаря Кевину Круйссену
источник
>15125255999999L
может быть>=15125256e6
15125256e6
это15125256000000
когда я проверить его в Java 8. Но я не знаю Processing.org, поэтому , возможно , это немного отличается или использовать другую версию? Вот TIO с некоторыми базовыми тестами,15125256e6
чтобы убедиться, что он работает в Java 8. Но я рад, чтоD
после того, как это исправит. Рад, что смог помочь. :)Excel VBA,
120118117 байтФункция анонимного непосредственного окна VBE, которая не принимает и выводит финский флаг, и если Финляндии больше 100 лет a
100
на этом флаге. Это сделано в отношении пасхального часового пояса США, поскольку Excel или Excel VBA не могут определить часовой пояс без надстроек или доступа к Интернету.Выход
Если Финляндия моложе 100 лет
Если Финляндия старше 100 лет
-2 байта для перехода
If #12/5/17 19:00#<=Now Then[B2]=100
наIf Now>=#12/5/17 19:0#Then[B2]=100
-1 байт для использования,
Cells
а не[A1:R11]
источник
MATLAB,
133130123 байта310 байтов, спасибо за @flawr!Это использует
[0, 51, 128]
для синего цвета. Размер изображения 180 × 110 пикселей.Образец прогона:
Пример запуска с текстом (изменение
737035
к0
в коде , так что текст отображается в любой день):источник
JavaScript (ES5) + SVG (HTML5),
189179 байт(HTML, чтобы показать, что требования к цвету выполняются.) Редактировать: 10 байт благодаря @Shaggy. Выходы:
источник
Date.now()
в UTC, и я сравниваю его со значением UTC2017/12/06 00:00:00 UTC+2
.<path></path>
на,<path/>
чтобы сохранить несколько байтов.Python 3 с подушкой,
213212211 символов (Unix) и217216 символов (Portable)Это версия Unix. После публикации я понял, что время, возвращаемое
time()
не обязательно, имеет свою эпоху 1 января 1970 года, поэтому оно не обязательно переносимо.Это переносимый код, размером 4 байта, который он использует для
gmtime
сравнения кортежей, поэтому он должен надежно работать и в Windows.Изображения отображаются в окне. Действительно трудно заставить его потреблять меньше символов. Даже
time.time
возвращаетfloat
так>0x5a273299
бы не совсем так правильно, или>0x5a273300
будет выключен на микросекунды.источник
Tcl / Tk , 135 байт
Должен быть запущен в интерактивной оболочке
До 2017/12/06 02:00 по Гринвичу
После 2017/12/06 02:00 по Гринвичу
источник
Java
342368361321317 (299 + 18) байтовGolfed
Ungolfed
Результат
кредиты
Оливье Грегуар сэкономил 40 байт для использования лямбды.
4 байта сохранены Кевином Круйссеном для длинного форматирования.
2 байта сохранены пользователем 902383 для шестнадцатеричного форматирования.
источник
true
с с1>0
,args
сa
, и может удалить пробелы вокруг=
на ,P j = new...
чтобы сэкономить несколько байт.import java.awt.*;
), с включенным условием.import
вообще. 2. имена переменных не сокращаются:args
могут быть уменьшены доa
. 3. все еще есть дополнительные пробелы, которые содержатся в записи. 4. нет условного отпечатка «100».VIM, 147
Мне очень нравится этот вызов ☺. © это побег.
источник
Баш и Имиджмаик, 135
источник
((`date +%s`>=1512511200))&&x=100
. Обратите внимание, что я переместил одинарные кавычки внутри-draw
параметра, где они не нуждаются в экранировании.Императив Тампио , 239 байт (неконкурирующий)
Онлайн версия
Перевод:
SVG был взят из этого ответа th3pirat3 (и Нил, по-видимому).
Эта программа написана в новой версии Tampio, над которой я работаю. Те из вас, кто знает финский, могут видеть, что он почти читабелен. Я отметил ответ как неконкурентный, потому что этот язык был опубликован после этого вызова.
Чтобы запустить эту программу, либо перейдите к онлайн-версии выше, содержащей скомпилированную версию JS программы, либо загрузите компилятор со страницы Github . Чтобы скомпилировать программу, запустите
python3 tampio.py -p program.itp >program.html
.Тампио не является языком игры в гольф ни в коем случае, но из-за лучшего кода svg он на самом деле опередил Роду ... Я был немного удивлен.
источник
Баш, 198
источник
HTML + CSS + Javascript, 339 байт
Вот то же решение, урезанное до 260 байтов, которое предполагает, что ваш порт просмотра имеет правильное соотношение 18:11.
Вы можете выбить 0 из отметки времени в любом решении, чтобы увидеть появление «100».
источник
HTML + Javascript, 329 байт
Я бесстыдно украл часть проверки даты из @jstnthms. По сути, я просто пишу грубую HTML-таблицу с правильными соотношениями строк / столбцов,
th
являющимися синими частями. Проверено на IE и Chrome, а также на mee.fi -site.источник
Perl 5, 139 байт
быть запущенным
соотношение было изменено из-за соотношения символов высота / ширина = 1,66 (5/3) в противном случае с исходным соотношением:
источник
Ракетка 6.10 с 2htdp / изображением, 202 байта
Ungolfed:
источник
100
в синюю часть - почти пропустил это.Small Basic , 300 байт
Скрипт, который не требует ввода и вывода
TextWindow
объекта.Попробуйте это на SmallBasic.com! Требуется IE / Silverlight
Выход
Показано после 100-го дня независимости Финляндии.
источник
ранее сделанный код был сведен к следующему:
HTML, CSS и JavaScript, 1599 байт
источник
===
и100
).HTML + JavaScript, 247 байт
источник
JavaScript ES6, 532 байта
Решил попробовать использовать образ Base64, чтобы посмотреть, насколько коротким я смог его получить. Не победитель, но, тем не менее, интересный.
источник
${(…)}
→${…}
); нет необходимости в двойных кавычках вокруг этих значений атрибутов HTML; хотя это и неверно, в большинстве случаев вы можете обрезать отступы кодированных строк base64 знаками равенства (у Firefox, безусловно, нет проблем с его декодированием).