Сегодня 8 ноября 2016 года, день выборов в Соединенных Штатах Америки.
Если вы являетесь гражданином США, имеющим право голосовать, тогда выходите и голосуйте, если вы еще этого не сделали, прежде чем ответить на этот вызов. Не обсуждайте, за кого вы проголосовали. Имеет значение только то, что вы проголосовали.
Если вы не являетесь гражданином США или не имеете права голосовать, то прежде чем ответить на этот вызов, сделайте одолжение США, сказав всем, кого вы знаете, кто имеет право участвовать в выборах и проголосовать, если они этого еще не сделали.
Вызов
Напишите программу, в которой указано, что вы проголосовали, например цифровую наклейку «Я проголосовал» .
Он не должен принимать никаких входных и должна вывести в разумных фразу , I Voted
где I
, o
и e
красные ( #FF0000
) и V
, t
и d
синий ( #0000FF
). Фон должен быть белым ( #FFFFFF
).
Например:
Эти цвета, конечно, представляют американский флаг (хотя не официальные цвета ). Красный на первом месте просто потому, что на первом месте в общей идиоме «красный белый и синий».
Чтобы быть действительным, ответ должен:
Используйте цвета, указанные в указанном порядке.
Используйте один разборчивый шрифт и размер шрифта. В примере используется 72pt Times New Roman, выделенный жирным шрифтом, но любой обычный шрифт выше 6pt, вероятно, подойдет.
Пишите только фразу
I Voted
в одной строке , правильно написав ее заглавными буквами, и между двумя словами должно быть свободное пространство. Это не должно выглядеть такIVoted
.Не указывайте, за кого отвечал голосующий или поддерживает президент или какие-либо избирательные гонки. Давайте не будем начинать какие-либо интернет-дебаты. Речь идет о праздновании голосования, а не кандидатов.
Любой разумный способ отображения или создания выходных данных является допустимым, например:
Рисование текста на изображении, которое затем отображается, сохраняется или выводится необработанным.
Запись текста в консоль с использованием цветового форматирования . В этом случае вы можете приблизить чистый красный и синий, если необходимо, и это нормально, если только область непосредственно за текстом может быть сделана белой.
Отображение текста в форме WPF / Windows.
Вывод файла HTML / RTF / PDF с текстом.
Пожалуйста, разместите изображение вашего вывода.
Самый короткий ответ в байтах побеждает.
источник
Ответы:
Minecraft Chat (клиент vanilla 1.10, сервер spigot 1.10): 19 байт
или со стороны клиента:
Minecraft использует систему цветового кодирования с этими цветами, запрограммированными в.
Следуйте правилам:
Все это верно, как:
красное и синее приближения АР (хотя все еще очень похоже).
Фон в чате Minecraft прозрачный, это означает, что его можно поместить на белый фон. (например, пустой мир)
источник
&
s должно быть§
sC
8280787454 байтаСпасибо @WillihamTotland и @criptych за сохранение 2 байта каждый!
Где символы представляют 0x1B байтов (escape-ключ). Поскольку этот код содержит непечатаемые управляющие символы, вот обратимый hexdump:
Вывод на мой телефон:
источник
a
как"\x1B[%dm"
, которая является escape-последовательностью ANSI для окраски, с заполнителем. Номера в нихprintf()
заполнены."\x1B[47;31m"
и определяя b на"\x1B[34m"
, затем используяputs
с переменнымa
иb
префиксами.\33
. Не уверен, что об этом думает стандарт С ...Google Blockly ,
1014 блоков,284135 байтКод
Выход
Попробуй здесь
Не считая
hide turtle
блока, потому что это просто эстетика.Блайт - это комбинация блока и байта, пока нет метапоста о том, как считать это, но я создам его позже. На данный момент, вот как я считаю:
I o e
8 байтV t d
10 байт (2 ведущих пробела здесь)Поскольку Google Blockly редко используется для игры в гольф, и я думаю, что это нестандартное решение для этой задачи, я надеюсь, что это правильное представление.
источник
I o
двумя пробелами?Inspect Element
и запустить код в Blockly API, чтобы получить настоящий код JavaScript.HTML, 52 байта
источник
#FF0000
->#F00
и#0000FF
->#00F
работает<r>I <c>V<r>o<c>t<r>e<c>d<style>r{color:red}c{color:blue
работаетI <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ff
и поменять ноту на синий0ff
c{color:blue}
версия.LaTeX,
147126 байтСохранено 21 байт и улучшен кернинг благодаря @ AndreïKostyrka.
Это печатает страницу a4 с этим в первой строке (обратите внимание, что это также печатает страницу 1 внизу):
источник
Vo
кернинг красивее ... Но, очевидно, он рассматривает каждую букву отдельно из-за цветов.\documentclass{proc}\input color\begin{document}\def\z{\color{red}}\def\y{\color{blue}}\z I \y V\z o\y t\z e\y d\end{document}
экономит 21 байт и приводит к 126 байтам чистой типографской красоты.Windows 10 Batch,
5150 байтГде ␛ представляет символ ANSI Escape 0x1B. Выводы с использованием цветового форматирования. Редактировать: 1 байт сохранен благодаря @ brianush1. Я пытался написать код для генерации этого, но это заняло 97 байтов. Выход:
источник
@color fc&echo I
...JavaScript, 71 байт
Использует
console.log
способность печатать в цвете. Не работает в фрагменте стека, поэтому вы должны вставить этот ответ в консоль, чтобы проверить его.Фото предоставлено @Mast
источник
console.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
Р,
113 85 81 74 7355 байтовРедактировать: Сохранено несколько байтов благодаря @rturnbull и @JDL
Размер вывода (и интервал и т. Д.) Зависит от разрешения открытого в данный момент графического устройства. Протестировано в RGui и RStudio на моем мониторе и выдает:
источник
el()
раньше. Спасибо за помощь в изучении R! Такtext
как векторные, вы можете пропустить за петлю и просто написать:text(seq(.3,.6,.05),.5,s,col=c("red","blue"))
. (Я изменил ваши позиции x для кода игрока в гольф, хотя интервал может быть немного менее аккуратным.)co=
вместоcol=
. И, наконец,6:12*.05
на несколько байтов корочеseq(.3,.6,.05)
.6:12/20
это, конечно, на 1 байт меньше, чем6:12*.05
извинения за то, что вы сбились с пути и предложили неоптимальные правки.el()
улучшает 99% всех предыдущихstrsplit
ответов на 1 байт.ЛЁВ ,
152 142136 байтДавайте покажем немного интересного маленького языка прототипирования! Он не идеален для игры в гольф (да ладно, он основан на LUA), но его легко написать.
Скриншот:
Полностью негольфированная версия:
источник
love.draw()
это встроенная функция, которую вы переопределяете, которая выполняется на этапе рисования. Есть также такие вещи, какlove.update()
иlove.load()
для различных частей цикла рендеринга, но они необязательны. Это хороший язык, и вы можете начать с ним очень легко . Я иногда использую его для создания прототипов игровых идей.Процессор горячего супа , 48 байт
Безголовая версия:
Если вы помните, что
mes
(сообщение) - это HSPecho
, я думаю, что это довольно читабельно.Как ни странно, если вы попытаетесь сделать
pos
илиpos,
, синяя линия не перезаписывает красную линию и появляется под ней. Даже более странно,color
он предназначен только для значений0-255
, но0,0,-1
работает для синего,0,-1,0
работает для зеленого и-1,0,0
работает для ... черного? (-257,0,0
и511,0,0
работать на красный, хотя, так что что-то прикольное в моде 256 происходит)источник
mes
перезаписывают первое?MATLAB, 74 байта
Мы создаем белый фон 50x50 (один столбец для каждого состояния), используя
imshow
массивones
. Затем мы отображаем текст, используя мой прием сокращения имен свойств, чтобы получить цвета. Поскольку шрифт по умолчанию не имеет фиксированной ширины, текст дополняется пробелами.MATLAB, 99 байт, шрифт фиксированной ширины
Первая версия использует перестановку с пробелами и координатами, чтобы получить правильный кернинг для шрифта по умолчанию, и может некорректно отображаться на вашем компьютере. Вместо этого мы можем использовать шрифт фиксированной ширины, например
Courier
(или, для некоторых других байтов,FixedWidth
который работает в любой системе, в которой установлен шрифт фиксированной ширины). Это происходит ценой нескольких дополнительных байтов. Мы можем немного смягчить это, используяfor
цикл для печати текста. Текст и соответствующие цвета хранятся в массиве ячеек. Фон должен быть немного больше.Matlab, 80 байтов бонусного издания
К сожалению, подчеркнутый синий текст не допускается. В противном случае этот ответ высветил бы интересное поведение в MATLAB. Вы можете напечатать красный текст, используя
fprintf(2,txt)
, и вы можете напечатать синий подчеркнутый текст с помощьюfprintf('<a href="">txt</a>')
. Объединяя это работает ... иногда. Полностью наугад , он также может создать красный подчеркнутый текст. Вы можете выполнятьdrawnow
между последовательнымиf
вызовами, если это имеет место в вашей системе.источник
<a href>
вместо<a href="">
. Если вам это не нравится, вы можете использовать<a href=#>
.<a>
не работал<a>
не считается кликабельной ссылкой. чтобы получить синий цвет, его нужно рассматривать как единое целое. В CSS селектор может бытьa[href]
. Пока атрибутhref
есть, это ссылка, которую можно нажимать. Вот почему использование только<a>
не будет работать.ImageMagick, 102 байта
Ungolfed:
Игра в гольф полная команда ImageMagick состояла из
явно не вызывает
convert
утилиту по умолчаниюиспользование
xc:
вместоcanvas:
(xc:
это старый синоним дляcanvas:
; я не предвижу, что ImageMagick когда-либо его устранит)не определяя цвет холста, но полагаясь на значение по умолчанию ImageMagick, которое оказывается белым
удаление ширины
60
из геометрии (если она опущена, ширина == высота)удаляя "!" из геометрии, которая необходима только для создания неквадратного холста, как
canvas:white[60x30!]
использование более старого файла
x:
вместоshow:
выходного (предполагается, что ImageMagick был создан сX
поддержкой)удаляя некоторые пробелы, которые я использовал для выравнивания текстовых строк
объединение нескольких строк команды (убран обратный слеш-CR между строками)
Если вы так склонны после выборов, добавьте 12 байтов,
-rotate 180
предшествующихshow:
директиве:источник
Баш, 35 байт
Мой сценарий выглядит так
xxd файла сценария:
Напечатайте это: ctrl-v-esc и ctrl-vh вставят escape-символы и пробелы (^ [и ^ H).
источник
Mathematica (вывод изображения REPL),
6549 байтГрафическое выражение REPL.
источник
Overlay@{"I o e"~Style~Red," V t d"~Style~Blue}
(должно быть два пробела между I и o и перед V)Ява,
322319318309304229217 байт-9 байт благодаря Кевину.
-75 байт, благодаря Angzuril, хорошему обращению к старым классам awt, всегда забывайте, что они существуют.
-12 байт благодаря пользователю 902383.
Выход:
источник
JFrame j=
можно играть в гольф наFrame j=
;(c==' '||i++%2==0)?
можно играть в гольфc<33|i++%2<1?
иtrue
можно играть в гольф1>0
. Кроме того, @HelkaHomba, это правильный вывод? Так как он также имеет пробелы междуV o t e d
? А зачем0,0,999,99
?0,0,99,99
достаточно большой для текста на моем экране.(c<33||i++%2<1)?
можно поиграть в гольф на три байта, убрав скобки и изменив||
на|
new JComponent
доnew Container
(-1); удалитьchar c="IVoted".charAt(i);
и изменитьg.drawString(c+""
наg.drawString("IVoted".charAt(i)+""
(-8).Frame j=new JFrame();j.add(new JComponent()
на,Frame j=new Frame();j.add(new Container()
и вы также можете отказаться от импортаimport javax.swing.*;
и,g.setColor(Color.WHITE);g.fillRect(0,0,99,99)
как следствие (-63)void n(){new Frame(){{add(new Panel(){public void paint(Graphics g){int i=0;for(String c:"IVoted".split("")){g.setColor(i%2<1?Color.RED:Color.BLUE);g.drawString(c,i++*8,10);}}});setVisible(0<1);}};}
позволяет уменьшить на 12 байтЖевательная резинка, 28 байт
Не работает онлайн, так как использует цветовые коды ANSI для раскраски.
источник
PowerShell v2 +,
71595755 байтСохранено два байта благодаря @flashbang ... сохранено еще два благодаря @ConnorLSW
Принимает
"I Voted"
и превращает его вchar
массив, затем циклы|%{...}
. Каждую букву мы выполняемWrite-Host
с-b
цветом ackground toWhite
,-n
oNewLine и-f
цветом oreground, чтобы быть соответствующим индексом . Это использует тот факт, что нечетные значения ASCII имеют красный цвет, а четные значения ASCII - синий через$_%2
индекс.Цвета консоли в PowerShell очень ограничены, так что это самое близкое приближение, которое я мог бы получить. Было бы лучше использовать
4
(DarkRed
) для красного, но это выглядит неправильно, поэтому я жертвую парой байтов ради точности цвета.Ниже приведен вывод, за которым следуют 16 доступных цветов, которые может отображать консоль. Обратите внимание, что фон на самом деле не белый, так как Microsoft, по своей мудрости, предпочла иметь цвета фона, очень немного отличающиеся от цветов переднего плана.
источник
Python, 91 байт +
termcolor
Не собираюсь побеждать, но разместил это в шутку.
Половина кредита идет на Sp3000.
источник
'blue' if c else 'red'
на'brleude'[c^1::2]
.from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
Джольф, 53 байта
Есть непечатные. Попробуй это здесь!
Вывод Джольфа в формате HTML. Я пытался сделать что-то умное, например, модуль 2, чтобы определить цвет, но это завелось только дольше (около 69 байт). Итак, вывод в HTML.
Выход:
(увеличенная версия)
источник
blue
быть написано как00f
?Python,
9987 байтПопробуйте онлайн
источник
ш,
6149 байтПоскольку он содержит непечатаемые, вот обратимый xxd hexdump:
Xterm (322)
Спасибо 4198 (manatwork) за -12 байтов.
источник
[47;31;1m
. И1
жирный шрифт сохраняется до a0
, поэтому нет необходимости устанавливать его снова и снова для каждой буквы.sh
что - нибудь более современное , чем старые Bourne оболочки, некоторое расширение параметр может помочь:s=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}
.${VAR/FROM/TO}
требуется ksh93, bash или zsh, а не просто «что-то более современное, чем старая оболочка Bourne». POSIX требует модификаторов#
и%
параметров расширения, но не/…/
или:…:
SVG +
bzip2
, 1807 байтВекторизованная версия примера изображения, затем сжатая с помощью bzip2 примерно до половины (4385 -> 1807 байт). Вы можете скачать его здесь . (прямая ссылка на страницы GitHub)
Не собираюсь побеждать, но разместил это в шутку.
источник
bzip2
это не язык программирования.xxd
файл<svg xmlns="http://www.w3.org/2000/svg"><text fill="blue"><tspan fill="red">I</tspan> V<tspan fill="red">o</tspan>t<tspan fill="red">e</tspan>d</text></svg>
обратите внимание, что это фактически выводит его за пределы области печати и не имеет цвета фона. Как я уже сказал, это только начало.C 65 байт
или, точнее:
Использует ту же технику цвета bash, что и betseg, но с восьмеричной escape-последовательностью вместо hex и наблюдением Sp3000, что все нечетные кодовые точки имеют красный цвет.
Оставляет терминал синим цветом. Сброс с:
источник
||
работает в C так же, как в JavaScript (x||y -> x?x:y
), вы можетеc&1||4
сохранить байт.||
и&&
является коротким замыканием, они всегда возвращают 1 или 0, независимо от значений , участвующих.\33
чтобы сохранять два байта, если это как-то не соответствует правилам.Узел,
575541 байтЗамените каждый
q
буквенный байт1B
иH
байт08
перед запуском.Вот как это выглядит в эмуляторе терминала ConEmu на моем компьютере с Windows (увеличено):
источник
Python IDLE,
97967869 байтСпасибо DrMcMoylex за то, что сбрил несколько байтов!
РЕДАКТИРОВАТЬ: понял, что прямой
.write()
был на 9 байт корочеНе совсем правильный ответ, больше злоупотребления стандартной темой. IDLE - это среда разработки Python, и если он не настроен,
STDOUT
он синий,STDERR
красный, а фон белый. Итак, следующий код:Печатает это:
Это работает, потому что
ord(i)%2
проверяет четность кодовой точки буквы и печатает ее вERR
/OUT
соответственно.источник
REBOL ,
1009095 байтов (-7 байтов с REPL для 88)В REPL начальный REBOL [] не требуется. Это 7 байтов.
Безголовая версия:
Слева, с "пробелом 0x0", добавленным к каждому текстовому блоку, справа с отступом по умолчанию 2x2.
(источник: canardpc.com )
источник
Perl, 57 + 17 = 74 байта
Бежать с
-MTerm::ANSIColor
Ваш терминал может быть синим в конце (добавить
,c("reset")
в конце кода, чтобы восстановить его в нормальном состоянии).По умолчанию терминалы обычно черный фон, но при желании их можно изменить на белый, что я лично не считаю обманом.
С картиной:
источник
PHP,
199201151 байтЭтот скрипт выводит изображение на стандартный вывод. Обновлено благодаря manatwork
Запустите его в командной строке следующим образом:
Выход:
источник
header()
звонок. Ваш код отлично работает и из командной строки. Посколькуerror_reporting
значение по умолчанию не показывает уведомления, обычно допустимо не заключать в кавычки ваши строковые литералы. Или, если вам это не нравится,str_split("I Voted")
все равно короче, чем перечислять символы отдельно. И переместите присвоение в $ i для его первого использования.~2**24
кажется, работает вместо0xFFFFFF
. Не уверен, что это действительно для всех архитектур. Если нет,2**24-1
должен быть портативным.~2**24
и ,2**24-1
но я получил ошибку. Я даже не знаю, как это работает.pow()
, но удобнее для игры в гольф. pastebin.com/jFn6ahFkXamarin.Forms C #,
317313 байтVerticalOptions=LayoutOptions.End
необходим для iOS, иначе текст будет наложен на строку состояния. Нет проблем на Android, поэтому можно сохранить 34 байта, включая запятую.Изменить: 2016-11-14: -4 байта
Ungolfed
источник
машинный код x86 + DOS + BIOS, 25 байт
HexDump:
Код сборки (подходит для ввода
debug.com
, поэтому все числа шестнадцатеричные):Он использует подпрограмму BIOS для вывода строки в память дисплея. Строка будет отображаться в «случайной» позиции на экране (см. Ниже), например:
Строка содержит буквы
I V o t e d
, чередующиеся с «атрибутами»которые определяют цвет букв. Здесь 7 как самая значимая цифра означает «белый фон», а наименее значимая цифра указывает передний план (1 = синий; 4 = красный).
Положение отображения строки определяется
dx
регистром. Как упомянуто здесь , начальное значение этого регистра равно значениюcs
регистра. И значение этого является первым доступным адресом в памяти после загрузки DOS.Размер DOS обычно меньше 64 КБ, то есть адрес сегмента загруженной пользовательской программы меньше шестнадцатеричного
1000
. Таким образом, вывод появится где-то около первых 16 строк текста на дисплее. В моем примере это появилось в строке 8 (верхняя половинаdx
, названнаяdh
, равна 8).Нижняя половина
dx
, вызываемогоdl
, содержит столбец, в котором выводится текст. Эксперименты показывают, что BIOS не проверяет переполнение, поэтому не имеет значения,dx
запрашивает ли вывод, например, в столбце 100.источник