나가서 투표


114

오늘은 2016 년 11 월 8 일, 미국의 선거일 입니다.

귀하가 투표 할 자격이있는 미국 시민 인 경우, 이 과제에 답변하기 전에 아직 나가지 않았다면 투표 하십시오. 누가 투표했는지 토론하지 마십시오. 투표 한 것만 중요합니다.

귀하가 미국 시민이 아니거나 투표 자격이없는 경우,이 도전에 응답하기 전에, 자격이있는 시민이 누구인지 아는 사람에게 나가서 아직 투표 하지 않은 경우 투표 하도록 미국에 부탁하십시오 .

도전

디지털 "I Voted"스티커 처럼 투표했음을 나타내는 프로그램을 작성하십시오 .

그것은 합리적인 방법으로 문구를 더 입력해야 출력이 소요됩니다 I VotedI, o그리고 e빨간색 (이다 #FF0000)과 V, t그리고 d파란색 ( #0000FF). 배경은 흰색이어야합니다 ( #FFFFFF).

예를 들면 다음과 같습니다.

"투표"예제 그래픽

이 색상은 물론 미국 국기를 대표 합니다 (공식 색상은 아니지만 ). 빨간색은 일반적인 관용구 인 "빨강 흰색과 파란색"에서 먼저 나오기 때문에 우선적으로 나타납니다.

유효하려면 답변이 다음과 같아야합니다.

  • 지정된 배열에 지정된 색상을 사용하십시오.

  • 읽기 쉬운 단일 글꼴 및 글꼴 크기를 사용하십시오. 이 예에서는 72pt Times New Roman 굵은 체를 사용하지만 6pt 이상의 일반적인 글꼴은 괜찮습니다.

  • 두 단어 사이에 명확한 공백 I Voted을두고 한 줄 에 문구 를 올바르게 대문자로 표기하십시오. 처럼 보이지 않아야합니다 IVoted.

  • 응답자가 회장 또는 다운 투표 용지에 투표 한 사람이나지지하는 사람은 표시하지 마십시오. 인터넷 토론을 시작하지 마십시오. 이것은 후보자가 아니라 투표를 축하하는 것입니다.

다음과 같이 출력을 표시하거나 생성하는 합리적인 방법이 유효합니다.

  • 텍스트를 이미지에 그린 다음 표시, 저장 또는 출력되지 않은 원본.

  • 사용하여 콘솔에 텍스트 쓰기 색 서식을 . 이 경우 필요한 경우 순수한 빨강과 파랑에 근접 할 수 있으며 텍스트 바로 뒤에있는 영역 만 흰색으로 만들 수 있습니다.

  • WPF / Windows 양식에 텍스트를 표시합니다.

  • 텍스트와 함께 HTML / RTF / PDF 파일을 출력합니다.

출력 이미지를 게시하십시오.

바이트 단위의 최단 답변이 이깁니다.


29
실제 스티커 가 너의 것 같지 않아서 조금 실망했다 .
Geobits

39
"당신이 투표 한 것은 중요합니다." -@HelkaHomba ... "코드를 작성하는 한 어떤 코드를 작성하든 문제가되지 않습니다." : /
Michael Yaeger

41
@MichaelYaeger 글쎄, 코드를 작성하는 것이 아무것도 작성하지 않는 것보다 낫습니다. 투표는 투표하지 않는 것보다 낫습니다. 사람들이 원하는 경우 코딩과 투표에 대해 생각할 가능성이 있습니다. 그러나 실제로 나는 화난 논쟁을 피하기 위해 말했다.
Calvin 's Hobbies

43
누군가에게 도움이된다면 모음은 빨간색이고 자음은 파란색입니다.
mbomb007

34
@ mbomb007 또는 더 유용한 것은 홀수 코드 포인트가있는 문자는 빨간색이고 코드 포인트가 짝수 인 문자는 파란색입니다.
Sp3000

답변:


116

마인 크래프트 채팅 (vanilla 1.10 client, spigot 1.10 server) : 19 bytes

&4I &1V&4o&1t&4e&1d

또는 클라이언트 측에서 :

§4I §1V§4o§1t§4e§1d

Minecraft는 이러한 색상이 프로그래밍 된 색상 코딩 시스템을 사용합니다.

enter image description here

규칙을 명심하십시오 :

  • 색상 형식을 사용하여 콘솔에 텍스트 쓰기 이 경우 필요한 경우 순수한 빨강과 파랑에 근접 할 수 있으며 텍스트 바로 뒤에있는 영역 만 흰색으로 만들 수 있습니다.

: 이들 모두는 해당
빨간색과 파란색이 근사 (여전히 매우 유사하지만)입니다.
Minecraft 채팅의 배경은 투명하므로 흰색 배경에 넣을 수 있습니다. (빈 세상과 같은)


10
와. 내가 말을 해요. 그것은 매우 영리한 답변입니다!
DJMcMayhem

28
나는 Minecraft Chat이 Turing-complete 또는 프로그래밍 언어로 간주되지 않는다고 생각합니다 (더 이상 필요하지는 않지만). 그래도 매우 창의적입니다! :)
Kade

9
@Shebang gaming.stackexchange.com/questions/20219 / ... Minecraft 채팅에는 명령 블록과 거의 동일한 명령이 있으며, 질문을 받았을 때의 모든 명령이 확실히 있습니다. :-)
tuskiomi

15
기술적으로, 바닐라 마인에서, &S는 다음과 같아야 §S
올리버 니켈

2
흠 나는 그것이 Quake 3에서도 가능하다고 생각합니다
Sarge Borsch

107

C, 82 80 78 74 54 바이트

각각 2 바이트를 절약 한 @WillihamTotland와 @criptych에게 감사드립니다!

f(){puts("␛[47;31mI␛[34m V␛[31mo␛[34mt␛[31me␛[34md");}

여기서 ␛는 0x1B 바이트 (이스케이프 키)를 나타냅니다. 이 코드에는 인쇄 할 수없는 제어 문자가 포함되어 있으므로 뒤집을 수있는 16 진수 덤프는 다음과 같습니다.

00000000: 6628 297b 7075 7473 2822 1b5b 3437 3b33  f(){puts(".[47;3
00000010: 316d 491b 5b33 346d 2056 1b5b 3331 6d6f  1mI.[34m V.[31mo
00000020: 1b5b 3334 6d74 1b5b 3331 6d65 1b5b 3334  .[34mt.[31me.[34
00000030: 6d64 2229 3b7d                           md");}

내 전화 출력 :


3
@KritixiLithos 해당 줄은 플레이스 홀더를 사용하여 채색을위한 ANSI 이스케이프 시퀀스 인 a로 정의합니다 "\x1B[%dm". 숫자는 printf()해당 자리 표시자를 채 웁니다.
betseg

1
"\x1B[47;31m"a를 바꾸고 b를 정의한 "\x1B[34m"다음 puts교번 ab접두사 를 사용하여 2 바이트를 줄일 수 있습니다 .
Williham Totland

3
"\ x1B"대신 "\ 33"을 사용하여 다른 2 바이트를 저장할 수 있습니다.
criptych

1
criptych가 말한 것을 확장하면 이것이 허용되는지 모르겠지만 대신 리터럴 이스케이프 문자를 사용하여 4 바이트를 더 절약 할 수 \33있습니다. C 표준이 어떻게 생각하는지 잘 모르겠습니다.

3
메타 스레드 에 따라 @ paxdiablo , 코드 골프에는 기능이 정상입니다.
betseg

73

Google Blockly , 10 14 블록, 28 41 35 블 레이트

암호

enter image description here

산출

enter image description here

여기 사용해보십시오

hide turtle그것은 단지 미학이기 때문에 블록을 세지 않습니다 .

blyte는 블록과 바이트의 조합입니다.이를 계산하는 방법에 대한 메타 게시물은 없지만 나중에 만들 것입니다. 지금은 이것이 내가 계산하는 방법입니다.

  • I o e, 8 블 레이트
  • V t d, 10 블라이드 (2 개의 선행 공간)
  • 색상, 각각 1 개씩, 총 2 개
  • 90, 2 블 레이트
  • 999, 3 블 레이트
  • 0, 1 블 레이트
  • 우회전, 2 블릿
  • 앞으로 움직이고 2 개의 블리트
  • 일반 블록, 각각 1 개씩, 총 5 개

구글 블록 리 (Google Blockly)는 골프에 거의 사용되지 않으며이 도전을 위해 상자 밖에서 Wahy를 생각하고 있기 때문에 이것이 유효한 제출이기를 바랍니다.


20
레코드의 경우 유효합니다. 독특한 언어를 보는 것이 좋습니다. Google Blockly에서 바이트 수 계산에 대한 메타 합의가 없다면 우승자를 선택할 때 무시할 수 있습니다.
Calvin 's Hobbies

2
여기서 관련 토론을 찾을 수 있습니다 . CC @HelkaHomba.
Scimonster

이 세 공백 I o을 두 개의 공백으로 바꾸는 것에 대해 알고 있습니까?
Andrea Lazzarotto

Google Blockly는 JavaScript로 번역 된 후 실행됩니다. Inspect Element실제 JavaScript 코드를 얻으려면 Blockly API에서 코드를 실행 해야합니다 .

1
스크래치를 사용할 수 있을까요?
Adamawesome4

47

HTML, 52 바이트

I <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ff

2
또한, 나는 생각 #FF0000-> #F00#0000FF-> #00F동작
코너 오브라이언

46
이것을 스택 스 니펫으로 바꾸지 않겠습니까?
Neil

3
<r>I <c>V<r>o<c>t<r>e<c>d<style>r{color:red}c{color:blue작동
ASCII 전용

7
실제로 당신은 닫지 않고 중첩을 유지할 수 I <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ff파란색과 주 변화0ff

2
안타깝게도 현재 버전이 Stack Snippet으로 작동하지 않는 것 같습니다. 최신 버전은 c{color:blue}버전입니다.
Neil

39

유액, 147126 바이트

\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}

@ AndreïKostyrka 덕분에 21 바이트가 절약되고 커닝이 향상되었습니다.

첫 번째 줄에 a4 페이지를 인쇄합니다 (아래 쪽에도 1 페이지를 인쇄합니다).

enter image description here


13
LaTeX가 Vo커닝을 더 예쁘게 만들 것이라고 생각했을 것입니다 ... 그러나 분명히 색상으로 인해 각 문자를 개별적으로 고려합니다.
Sanchises

@sanchises 각 문자가 별도의 명령에 있기 때문에 적절한 커닝을 파괴한다고 생각합니다.
Fatalize

예 바로 그 거예요. 골프가 요구 사항이 아니라면 어쩌면 가능할 것입니다.
Sanchises

@sanchises 이것은 확실히 가능 하지만 이것은 실제로이 못생긴 솔루션보다 길다.
Fatalize

\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 바이트의 순수한 인쇄상의 아름다움을 만듭니다.
Andreï Kostyrka

34

Windows 10 배치, 51 50 바이트

@color fc&echo I ␛[94mV␛[91mo␛[94mt␛[91me␛[94md␛[m

여기서 ␛는 ANSI Escape 0x1B 문자를 나타냅니다. 컬러 형식을 사용하여 출력합니다. 편집 : @ brianush1 덕분에 1 바이트가 절약되었습니다. 이것을 생성하기 위해 코드를 작성하려고 시도했지만 97 바이트가 걸렸습니다. 산출:

I voted


1
당신이 사용한다면 당신은 그것을 1 바이트 아래로 골프 수 있습니다 @color fc&echo I...
brianush1

1
흥미로운, 나는 몰랐 윈도우 터미널 지원 ANSI 이스케이프 시퀀스
마크 K 코완

3
@MarkKCowan Windows 10 뿐이며 Redstone 업데이트를 게시 한 것 같습니다. XP를 설치하는 것을 막는 몇 가지 사항 중 하나입니다.
wizzwizz4

@ wizzwizz4 ConEmu는 이것들도 지원합니다 :) 실제로 이것은 Windows 10 주년 (예 : 레드 스톤 1)
Asu

@Asu XP를 설치했습니다.
wizzwizz4

28

자바 스크립트, 71 바이트

console.log('%cI %cV%co%ct%ce%cd',r='color:red',b='color:blue',r,b,r,b)

console.log컬러 인쇄 기능을 사용 합니다. 스택 스 니펫에서는 작동하지 않으므로이 답변을 콘솔에 붙여 넣어 테스트해야합니다.

enter image description here

@Mast의 사진 크레딧


바로 내가 방금 생각 해낸 것입니다. 가장 짧은 대안은 다음과 같습니다.console.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
ETHproductions

Node.js에서도 작동하지 않습니다. :(
Jordan

사실이 놀라 작동했다 그러나 않습니다 .
Mast

23

R, 113 85 81 74 73 55 바이트

편집 : @rturnbull 및 @JDL 덕분에 많은 바이트를 절약했습니다.

plot(8:1,0:7*0,pc=el(strsplit("detoV  I","")),co=2:1*2)

출력 크기 (및 간격 등)는 현재 열려있는 그래픽 장치의 해상도에 따라 다릅니다. 내 모니터의 RGui 및 RStudio에서 테스트하여 다음을 생성합니다.

enter image description here


4
아, 나는 본 적이 el()전에. R을 더 배우도록 도와 주셔서 감사합니다! 이후 text벡터화되어, 당신은에 대한 루프를 건너 뛰고 작성할 수 있습니다 text(seq(.3,.6,.05),.5,s,col=c("red","blue")). (간격이 약간 깔끔하지는 않지만 골퍼 코드의 x 위치를 수정했습니다.)
rturnbull

1
또한 부분 인수 일치로 인해 co=대신 사용할 수 있습니다 col=. 마지막으로 6:12*.05몇 바이트보다 짧습니다 seq(.3,.6,.05).
rturnbull

1
잘 잡아! 그리고 지금 6:12/20은 1 바이트보다 짧다는 것을 알고 6:12*.05있습니다.
rturnbull

1
색상이 꺼져 있지 않습니까? "I"와 "V"가 다른 색상이 아니어야합니까?
JDL

2
나는 el()이전의 모든 strsplit답변 의 99 %를 1 바이트 씩 향상시킬 것이라고 확신 합니다.
Vlo

21

러브 , 152 (142) 136 바이트

재미있는 작은 프로토 타이핑 언어를 위해 löve를 보여 드리겠습니다! 골프 작업에 적합하지는 않지만 (c'mon, LUA 기반) 작성하기 쉽습니다.

function love.draw()l=love.graphics
a=255
l.setBackgroundColor(a,a,a)s=l.setColor
p=l.print
s(a,0,0)p('I   o e')s(0,0,a)p('  V  t d')end

스크린 샷 :

screenshot


완전히 ungolfed 버전 :

function love.draw()
    love.graphics.setBackgroundColor(255,255,255)
    love.graphics.setColor(255,0,0)
    love.graphics.print('I   o e')
    love.graphics.setColor(0,0,255)
    love.graphics.print('  V  t d')
end

12
Java 이외의 것을 사용했다고 생각합니다.
AdmBorkBork

5
너무 많은 255… 그들에 대한 변수?
manatwork

1
@ ConorO'Brien 이것은 전체 프로그램입니다. love.draw()는 그리기 단계에서 실행되는 재정의하는 내장 함수입니다. 렌더 루프의 다양한 부분 love.update()과 같은 love.load()부분도 있지만 선택 사항입니다. 좋은 언어이며 매우 쉽게 시작할있습니다 . 때로는 게임 아이디어를 프로토 타이핑하는 데 사용합니다.
Geobits

2
@cat 그들은하지 않습니다. 콘솔에서 중복 인쇄하는 것이 아니라 그래픽 인쇄입니다. 따라서 여기의 공간은 "이 영역의 배경을 채색"이 아니라 "이 영역의 아무것도 페인트하지"입니다.
Geobits

2
@ ZoltánSchmidt 감사합니다! 있다 몇 가지 다른 사랑 답변 D : 당신이 그들을 통해 살펴보고 싶다면,
Geobits

18

핫 수프 프로세서 , 48 바이트

color 255
mes"I  o e
pos,0
color,,-1
mes"  V t d

ungolfed 버전은 다음과 같습니다.

color 255,0,0
mes "I  o e"
pos 0,0
color 0,0,255
mes "  V t d"

mes(메시지)가 HSP의 것임을 명심한다면 echo, 이것은 상당히 읽기 쉽다고 생각합니다.

이상하게도 pos또는 을 시도 pos,하면 파란색 선이 빨간색 선을 덮어 쓰지 않고 그 아래에 나타납니다. 더 이상하게도에서 color값을 가져와야 0-255하지만 0,0,-1파란색으로, 0,-1,0녹색으로, -1,0,0검은 색으로 작동합니까? ( -257,0,0그리고 511,0,0빨간색으로 작동하므로 mod 256에 대해 펑키 한 일이 발생합니다)

enter image description here


두 번째 공백 mes이 첫 번째 공백을 덮어 쓰지 않는 이유는 무엇 입니까?
고양이

@cat Spaces는 실제로 아무 것도 그리는 것이 아니라, 단지 커서 위치를 의미에서 전진시킵니다
Sp3000

1
255 -1을 사용하여 영리한는 +1 되세요
Cyoce

@Cyoce 아니면 실제로 -255입니까?
sagiksp

18

MATLAB, 74 바이트

imshow의 배열을 사용하여 흰색 50x50 (각 주마다 하나의 열) 배경 을 ones만듭니다. 그런 다음 속성 이름단축하는 트릭을 사용하여 텍스트를 표시 하여 색상을 얻습니다. 기본 글꼴의 너비가 고정되어 있지 않기 때문에 텍스트에 공백이 채워집니다.

imshow(ones(50))
text(2,9,'I   o e','Co','r')
text(8,9,'V  t  d','Co','b')

enter image description here

MATLAB, 99 바이트, 고정 폭 글꼴

첫 번째 버전은 공백과 좌표를 사용하여 기본 글꼴을 올바르게 커닝하여 컴퓨터에 제대로 표시되지 않을 수 있습니다. 대신 고정 너비 글꼴을 사용할 수 있습니다 Courier(또는 FixedWidth고정 너비 글꼴이 설치된 모든 시스템에서 작동하는 더 많은 바이트의 경우). 이것은 약간의 추가 바이트 비용이 듭니다. for루프를 사용하여 텍스트를 인쇄 하여 약간 완화 할 수 있습니다 . 텍스트와 해당 색상은 셀형 배열에 저장됩니다. 배경이 조금 더 커야합니다.

imshow(ones(80))
for y={'I  o e ','  V t d';'r','b'}
text(9,9,y{1},'Co',y{2},'FontN','Courier')
end

enter image description here

Matlab, 80 바이트 보너스 에디션

슬프게도 밑줄 친 파란색 텍스트는 허용되지 않습니다. 그렇지 않으면이 답변은 MATLAB에서 흥미로운 동작을 강조했을 것입니다. 을 사용하여 빨간색 텍스트를 인쇄하고을 사용하여 fprintf(2,txt)파란색 밑줄이있는 텍스트를 인쇄 할 수 있습니다 fprintf('<a href="">txt</a>'). 이것을 결합하면 ... 때때로. 완전히 무작위로 빨간색 밑줄이 그어진 텍스트를 만들 수도 있습니다. 시스템에 해당되는 경우 drawnow연속 f통화 간에 문제를 해결할 수 있습니다 .

f=@(p)fprintf(2,'%s<a href>%s</a>',p(1:end-1),p(end));f('I V');f('ot');f('ed');fprintf('\n')

enter image description here


<a href>대신 쓸 수 있습니다 <a href="">. 마음에 들지 않으면을 사용할 수 있습니다 <a href=#>.
Ismael Miguel

@IsmaelMiguel Clever. <a>작동하지 않았다.
Sanchises

<a>클릭 가능한 링크 만 사용하는 것은 아닙니다. 파란색을 얻으려면 하나로 간주해야합니다. CSS에서 선택기는입니다 a[href]. 속성 href이있는 한 클릭 가능한 링크입니다. 그렇기 때문에 사용하는 것만으로 <a>는 효과가 없습니다.
이스마엘 미구엘

18

ImageMagick, 102 바이트

magick xc:[x60] -fill red -draw 'text 5,30 "I     o  e"' -fill blue -draw 'text 15,30 "V   t   d"' x:

언 골프 드 :

magick convert canvas:white[60x60!] \
       -fill red  -draw 'text 5,30   "I     o  e"' \
       -fill blue -draw 'text 15,30      "V   t   d"' \
       show:

enter image description here

전체 ImageMagick 명령을 골프로 구성

  • 기본 convert유틸리티를 명시 적으로 호출하지 않음

  • xc:대신에 사용 하는 canvas:( xc:의 오래된 동의어입니다 canvas:. ImageMagick은 그것을 제거하지 않습니다)

  • 캔버스 색상을 지정하지 않고 ImageMagick의 기본값을 사용합니다.

  • 60지오메트리 에서 너비 제거 (생략 할 때 width == height)

  • "!"제거 사각형이 아닌 캔버스를 만드는 데 필요한 형상에서canvas:white[60x30!]

  • 출력 파일 x:대신 이전 show:파일 사용 (ImageMagick이 X지원 으로 빌드되었다고 가정 )

  • 텍스트 문자열을 정렬하는 데 사용 된 공백을 제거하십시오.

  • 명령의 여러 줄을 결합 (줄 사이에서 백 슬래시 -CR 제거)

선거 후 너무 기울어 -rotate 180지면 show:지시문 앞에 12 바이트를 추가하십시오 .

enter image description here


4
나는 ungolfed 버전이 골프 버전과 크게 다른 점을 좋아합니다.
Andreï Kostyrka

15

배쉬, 35 바이트

내 스크립트는 다음과 같습니다

echo "^[[47;31mI hope^[[34md^H^H^Ht^H^H^Hv"

스크립트 파일의 xxd :

0000000 : 6563686f 2022 1b5b 3437 3b33316d 4920 에코 ". [47; 31mI 
0000010 : 686f 7065 1b5b 3334 6d64 0808 0874 0808 희망. [34md ... t ..
0000020 : 0876 22.v "

입력 : ctrl-v-esc 및 ctrl-vh는 이스케이프 및 백 스페이스 (^ [및 ^ H)를 삽입합니다.

enter image description here


어떻게 작동합니까? 설명은 최고
고양이

2
@cat 모든 빨간 글자 ( "h"와 "p"를 스탠드 인으로 쓴다)를 쓴 다음, 색상을 파랑으로 설정하고 끝에 "d"를 쓴다. 마지막으로 커서를 왼쪽으로 움직여 이전 스탠드 위에 "t"와 "V"를 추가합니다 (위의 디스플레이에서 "^ H"로 표시되는 ASCII 0x08은 왼쪽으로 1 자 이동). 색상 변경을 위해 많은 이스케이프 시퀀스를 피하는 영리한 방법. 또한 리터럴 이스케이프 문자 (0x1B, "^ ["로 표시됨)를 사용하여 비슷한 답변과 비교하여 공간을 절약합니다.
Dave

또한 : 터미널이 기본적으로 흰색 배경으로 설정되어 있다고 가정하면 3 바이트를 절약 할 수 있습니다 (대부분의 다른 터미널 응답은 이미 이것을 가정합니다).
Dave

두 개의 따옴표를 제거하고 세미콜론 앞에 백 슬래시 (이스케이프 문자)를 추가하여 바이트를 저장할 수 있습니다. 또한 스크립트가가 낮은 경우 V를 (명령 줄 하나는 괜찮습니다).


14

자바, 322 319 318 309 304 229 217 바이트

케빈 덕분에 -9 바이트.
Angzuril 덕분에 -75 바이트, 오래된 awt 클래스의 멋진 설명 선은 항상 존재한다는 것을 잊어 버립니다.
user902383 덕분에 -12 바이트.

import java.awt.*;
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);}};}

산출:

enter image description here


1
JFrame j=골프를 칠 수 있습니다 Frame j=; (c==' '||i++%2==0)?에 golfed 수 c<33|i++%2<1?true에 golfed 할 수 있습니다 1>0. 또한 @HelkaHomba, 이것이 유효한 출력입니까? 또한 V o t e d? 사이에 공백이 있기 때문에 ? 아, 왜 0,0,999,99? 0,0,99,99내 화면의 텍스트에 충분한 크기입니다.
Kevin Cruijssen

1
(c<33||i++%2<1)?괄호를 제거하고 다음 ||으로 변경 하여 3 바이트 씩 |
골프

1
나는 골프에 더 많은 것을 발견했다 : new JComponent to new Container(-1); 제거 char c="IVoted".charAt(i);및 변경 g.drawString(c+""g.drawString("IVoted".charAt(i)+""(-8).
Kevin Cruijssen

1
먼저 개선, 변경 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)로
Angzuril

1
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 바이트를 줄일 수 있습니다
user902383

13

풍선 껌, 28 바이트

0000000: 938e 3636 ccf5 0492 e6b9 0a40 d224 370c  ..66.......@.$7.
0000010: 2c92 0f66 9780 d9a9 6076 0a00            ,..f....`v..

enter image description here

채색에 ANSI 색상 코드를 사용하므로 온라인에서 작동하지 않습니다.


이것은 일직선 인코딩입니까, 아니면 다른 영리한 트릭을 사용합니까?
코너 O'Brien

2
@ ConorO'Brien Bubblegum에는 영리한 속임수가 없습니다. 솔직히 말하면,이 답변은 내가 실제로 작업하고있는 실제 답변의 부작용이었습니다.
스파게티

13

PowerShell v2 +, 71 59 57 55 바이트

"I Voted"[0..6]|%{Write-Host -b w -n -f (9,12)[$_%2]$_}

덕분에 2 바이트 절약 @flashbang 절약 ... @ ConnorLSW 2 개 더 절약

소요 "I Voted"과로 바뀝니다 char-array, 다음 루프 |%{...}. 각 문자 Write-Host-background 색상으로 실행 됩니다 White.-n oNewLine 및 -foreground color로 적절한 인덱스 가되도록 실행합니다 . 이것은 홀수 ASCII 값이 빨간색이고 ASCII 값조차도 $_%2인덱스 를 통해 파란색이라는 사실을 활용합니다 .

PowerShell의 콘솔 색상은 매우 제한적이므로 이것이 얻을 수있는 가장 가까운 근사치입니다. 빨간색으로 4( DarkRed) 를 사용하는 것은 골퍼 이지만 올바르게 보이지는 않으므로 색상 정확도를 위해 몇 바이트를 희생합니다.

아래는 콘솔에 표시 할 수있는 16 가지 색상입니다. 마이크로 소프트가 지혜롭게도 배경색이 전경색에서 약간 벗어난 것을 선택했기 때문에 배경은 실제로 흰색 이 아닙니다 .

Console Output


IIRC는 고대에는 전경에 4 비트, 배경에 3 비트를 가지고 있으므로 배경은 0-7의 '어두운'색일 수 있습니다. 콘솔이 여전히 그 뒤에 있습니까?

@Hurkyl Kinda. EGA 색상 표를 기반으로하는 것으로 보이지만 PowerShell이 ​​해당 구성표를 유지하는 역사적인 이유는 확실하지 않습니다. 아마도 Win32 API에 이전 버전과의 호환성이 묻혀서 16 색만 사용하게 된 것 같습니다.
AdmBorkBork

배경색을 15로 설정하면 작동하지 않습니까?
Random832

@ Random832는 스티커의 흰색 배경을 위해서입니다.
geisterfurz007

@ geisterfurz007, TimmyD, 이미지의 실제 배경이 # 7 인 것처럼 보이기 때문에 배경을 "흰색"이 아닌 "15"로 설정하여 더 밝은 흰색을 얻을 수 있는지 묻고있었습니다. 그러나 더 자세히 살펴보면 전체 디스플레이가 이상하게 보입니다-예제의 선과 "I"사이의 회색 선 사이의 경계선과 콘솔에서 PowerShell을 실행중인 경우 다음 공간은 의미가 없습니다. ConEmu와 같은 다른 도구? 그렇다면 Microsoft를 비난하는 것은 이치에 맞지 않습니다.
Random832

11

파이썬, 91 바이트 + termcolor

이길 수는 없지만 재미있게 게시했습니다.

from termcolor import*
for c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')

크레딧의 절반은 Sp3000으로갑니다.


2
ANSI 코드 사용은 더 짧아야합니다
TuxCrafting

@ TùxCräftîñg 모든 플랫폼, 즉 Windows에서 지원되는 것은 아닙니다.
Kade

3
이미지를 추가 하시겠습니까?
Calvin 's Hobbies

9
로 변경 'blue' if c else 'red'하여 5 바이트를 절약 할 수 있습니다 'brleude'[c^1::2].
Kade

2
표준 모듈이 아니기 때문에 제목에 + termcolor를 넣어야합니다. 또한 :from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
SP3000

8

줄프, 53 바이트

"<z>I <w>V<z>o<w>t<z>e<w>d<style>w{ΞΩ4blue}z{ΞΩ4red

인쇄 할 수없는 것이 있습니다. 여기 사용해보십시오!

Jolf의 출력은 HTML을 지원합니다. 나는 색상을 결정하기 위해 모듈러스 2와 같은 영리한 일을 시도했지만 더 길어졌습니다 (약 69 바이트). 따라서 출력은 HTML입니다.

산출:

regular "I Voted"

(더 큰 버전)

large "I Voted"


8
HTML을 통해 3 바이트 만 저장 한 것이 끔찍합니다. : P
ASCII 전용

@EriktheGolfer 실제로는 Firefox에서만 작동합니다.
코너 O'Brien

@ ConorO'Brien 아, 저는 크롬을 사용합니다. 감사.
Outgolfer Erik

1
... 그리고 HTML 답변이 이것을 능가했습니다.
betseg

blue로 쓸 수 없습니까 00f?
Ismael Miguel


8

sh, 61 49 바이트

echo "[47;31;1mI [34mV[31mo[34mt[31me[34md"

여기에는 인쇄 할 수없는 것이 포함되어 있으므로 뒤집을 수있는 xxd hexdump는 다음과 같습니다.

00000000 : 6563686f 2022 1b5b 3437 3b33313b 316d 에코 ". [47; 31; 1m
00000010 : 4920 1b5b 3334 6d56 1b5b 3331 6d6f 1b5b I. [34mV. [31mo. [
00000020 : 3334 6d74 1b5b 3331 6d65 1b5b 3334 6d64 34mt. [31me. [34md
00000030 : 22 "
I Voted
Xterm (322)

-12 바이트의 4198 (manatwork) 덕분입니다.


왜 배경색과 전경색을 별도로 설정해야합니까? 로 시작하십시오 [47;31;1m. 그리고 1과감한까지이 지속을위한 0, 그래서 각 문자에 대해 또 다시 설정할 필요가 없습니다.
manatwork

@manatwork 오 세상에, 당신은 그것을 다시 설정해야한다고 생각했습니다!
Outgolfer Erik

이것이 sh이전 Bourne 쉘보다 최신 인 경우 일부 매개 변수 확장이 도움이 될 수 있습니다 s=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}.
manatwork

@manatwork 작동하지 않습니다. 더 현대적이지 않은 것 같습니다.
Outgolfer Erik

@manatwork ${VAR/FROM/TO}에는“이전 Bourne 쉘보다 더 현대적인 것”이 아니라 ksh93, bash 또는 zsh가 필요합니다. POSIX는 요구 #%매개 변수 확장 수정을하지만 /…/:…:

8

SVG + bzip2, 1807 바이트

예제 이미지를 벡터화 한 다음 bzip2를 사용하여 약 절반 (4385-> 1807 바이트)으로 압축합니다. 여기에서 다운로드 할 수 있습니다 . (직접 GitHub 페이지 링크)

BZh91AY&SY!�l�ß�x��>�ߠ/���`    0����Ҁ�D�5��ޠII�T񡤙�O!45J??��i�@JzH���
.�M�&�Q�vا����bB���� �쾾�4AV�8�8���)Z�ޣ�j�q}�����?�t�/
�±%��"A����B�X�(␌�[⎺;Z/┐├*��%�␤�       I���Uƒ�Y�9ǝK���B��┤�=���±?�W���
            ��ڰj�?�H��\����^��m�=X�d���>�!C�@�.���9�" DZ+��V1+�;�����58Q���-:�5,HDQŧ`A>����W�+h��>m��G�m�uWv�&�U�|mq�u���?=S�\{(��Z�a�I��G{Cd��;Bz���qX7��?P�@�Jt[w�]����%W���37f���-񴁭�iԳ]c��|�;i�k�H��
    sHz��Y�$�.�*�?�ڐ��Us=\뫅6%�Ud�9w���D
                                          ��H��^�Q��P��%n�O����l��+*q�U�"F%��*�     *b�� 
                                         @mP���Z�(ZL`
  bIv⦳�~�F=��>H�Ti����0@≠R≥��T�E��┴��D����␍│��2*◆=└6&⎽M�◆␊?�/�U�����r�.�`gƅ���E'��^��ILPz@���zR&u$��l^�U�n�'O\�Xj+چ�o�*�O�w��JP8���]���r��k=��N�b�ƵpM�8|���=7���N��W�M(����*�E�DݐT��Zi�v"���49�J�0}�F�*x�K���P��⎼*�������6[G,4� ү)UUT␍��%4D��Թ␉��⎻�8�CZ_3ɷwW�9��-&�Ov�a՜
�'ӥtߢ�>��^�m-������c�]:��*��2��촄Ujr�?"�J�"���DE�f?┴⎻��␍3·└���Ԉ��? ׌�5|ᫎ���|DO���%�4Ư`W�ƐV/=�]V`gˇ��^Z��cP������.{������6   o.*�sɽ���U?E.3�,�H$�{�?
             �%�0��2    ��n�C!%�>��]��
#߽v�E��K��?X|���5�ΰ@>A;#J���,��Q��$���ݨ��^����7�g�Xn�k����d욒�`fQ/7��vh|�ȥ*^M
                            �[����׈���i�I��    $��4��
  Y��`V.��ح��?�eT����5K˱~�瞯r�fL^I �#b�@�pBƞ���V`5��a��qH���Ş�t�V3��┌���T���1␉�␍$5��@T␤$�>$����π���S�[۸£�[ȟ␋CO≥�ގ^��>��]E�A��┘���I(�㴨Z�J'��:�-_┤±�K␌�ۓ#:�?m��^�Z�+�����G
�k�t�O��SD�4����^o��Z�n���6M�)!��r��w�3\�R����
�X6<#����.��p� Cj"�2�ĭ�*h�S�`}�L���C?�� �چZc'kG��

이길 수는 없지만 재미있게 게시했습니다.


1
bzip2프로그래밍 언어가 아닙니다.
피터 테일러

3
@PeterTaylor 메타 규칙마다 프로그래밍 언어 일 필요는 없습니다. ( meta.codegolf.stackexchange.com/a/10426/41088
noɥʇʎԀʎzɐɹƆ

1
xxd파일 의 가역 을 게시해야 함
cat

더 많은 압축을 위해 brotli를 사용해보십시오
Sarge Borsch

4
실제로 골프에 관심이 있다면 올바른 색상으로 설정된 몇 가지 텍스트 요소를 사용하여 손으로 SVG를 만드는 것이 더 합리적입니다. 시작점은 다음과 같습니다. <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>실제로 인쇄 가능 영역 외부로 렌더링하며 배경색이 없습니다. 내가 말했듯이, 그것은 시작에 불과합니다.
trlkly

8

C, 65 바이트

i;main(c){for(;c="I Voted"[i++];printf("\33[3%dm%c",c&1?1:4,c));}

또는 더 정확하게 :

i;main(c){for(i=90;c="\0.noitcele ym saw ti fi enod evah dluow I sseug I tuB .hsitirB ma I esuaceb ,etov ton did I"[i--];printf("\33[3%dm%c",c&1?1:4,c));}

betseg에서 사용하는 것과 동일한 bash 색 기술을 사용하지만 16 진수 대신 8 진수 이스케이프 시퀀스와 Sp3000의 모든 홀수 코드 포인트가 빨간색임을 관찰합니다.

터미널을 파란색으로 둡니다. 다음으로 재설정 :

printf "\33[0m";

만약 || C의 작품은 자바 스크립트에서와 같이 ( x||y -> x?x:y), 당신은 할 수 c&1||4바이트를 저장합니다.
ETHproductions

1
@ETHproductions는 C.에 그런 식으로 작업하는 동안하지 않습니다 ||하고 && 있습니다 그들은 항상 관계없이 포함 된 값의 1 또는 0을 반환, 단락.
Dave

@Dave 오늘 뭔가를 배웠습니다 ...
고양이

이것은 배경색을 설정하지 않습니다. 또한 문자 대신 이스케이프 문자를 사용할 수 있습니다\33 규칙에 위배되지 않는 경우 2 바이트를 저장하는 .

이 기본 터미널의 배경이 흰색으로 설정되어 있다고 가정 @yellowantphil (도전 말한다 때문에 그냥 할 필요가 가능 흰색 배경에 그것을 가지고). 실제로 OS X에서 터미널은 기본적으로 흑백입니다.
Dave

8

노드, 57 55 41 바이트

console.log("q47;91mI  o eHHHHq94mV t d")

각 교체 q리터럴 바이트 1BH바이트08 실행하기 전에.

내 Windows 컴퓨터의 ConEmu 터미널 에뮬레이터에서 보이는 방법은 다음과 같습니다 (확대).

enter image description here


어떤 터미널 에뮬레이터입니까?!
cat


8

파이썬 유휴, 97 96 78 69 바이트

몇 바이트를 줄여준 DrMcMoylex에게 감사드립니다!

편집 : 다이렉트 .write()가 9 바이트 더 짧다는 것을 알았습니다.

실제로는 정답이 아니며 표준 주제를 더 많이 남용합니다. IDLE은 Python의 IDE이며 사용자 정의되지 않은 경우 STDOUT파란색입니다.STDERR 빨간색 및 배경이 흰색입니다. 따라서 다음 코드는

from sys import*
for i in'I Voted':[stdout,stderr][ord(i)%2].write(i)

이것을 인쇄합니다 :

enter image description here

이것은 ord(i)%2문자 코드 포인트의 패리티를 확인하고 그에 따라 ERR/로 인쇄 하기 때문에 작동 합니다 OUT.


8

REBOL , 100 90 95 바이트 (88 바이트의 REPL이있는 7 바이트)

REBOL[]view layout[style b tt blue white space 0 across b"I"red b b"V"b"o"red b"t"b"e"red b"d"]

REPL에서는 초기 REBOL [] 이 필요하지 않습니다. 7 바이트입니다.

ungolfed 버전은 다음과 같습니다.

REBOL[]
view layout[
  ; by default, tt (text) has a grey background and a 2x2 padding
  style b tt blue white space 0
  ; this one doesn't appear in the golfed version as it's slightly shorter to just manually set red everywhere needed
  style r b red

  ; by default, vertical stack panel
  across
  r "I"
  r 
  b "V"
  r "o"
  b "t"
  r "e"
  b "d"
]

왼쪽에는 각 텍스트 블록에 "space 0x0"이 추가되고 오른쪽에는 기본 2x2 패딩이 있습니다.

REBOL I Voted
(출처 : canardpc.com )


7

펄, 57 + 17 = 74 바이트

로 실행 -MTerm::ANSIColor

sub c{color$a++%2?blue:red}say c,"I ",c,V,c,o,c,t,c,e,c,d

마지막에 터미널이 파란색 일 수 있습니다 (추가 ,c("reset") 코드 끝에 하여 정상으로 복원하십시오).

기본적으로 터미널은 일반적으로 검은 색이지만 선택적으로 흰색으로 변경할 수 있습니다. 개인적으로는 부정 행위라고 생각하지 않습니다.

사진과 함께 : enter image description here


7

PHP, 199 201 151 바이트

이 스크립트는 이미지를 표준 출력으로 출력합니다. manatwork 덕분에 업데이트

imagefill($i=imagecreatetruecolor(99,99),0,0,2**24-1);foreach([I,' ',V,o,t,e,d]as$k=>$e)imagestring($i,2,$k*9,0,$e,!$k|$k&1?0xFF0000:255);imagepng($i);

다음과 같이 명령 행에서 실행하십시오.

php -d error_reporting=0 -r "imagefill($i=imagecreatetruecolor(99,99),0,0,2**24-1);foreach([I,' ',V,o,t,e,d]as$k=>$e)imagestring($i,2,$k*9,0,$e,!$k|$k&1?0xFF0000:255);imagepng($i);" > output.png

산출:

enter image description here


2
header()통화를 건너 뜁니다 . 코드는 명령 줄에서도 잘 작동합니다. 으로 error_reporting의 기본값이 아닌 사항을 보여줍니다 ', 당신의 문자열 리터럴을 인용하지 일반적으로 허용됩니다. 또는 마음에 들지 않으면 str_split("I Voted")여전히 문자를 개별적으로 열거하는 것보다 짧습니다. 그리고 첫 번째 사용법으로 과제를 $ i로 옮깁니다.
manatwork

1
~2**24대신 작동하는 것 같습니다 0xFFFFFF. 이것이 모든 아키텍처에 유효한지 확실하지 않습니다. 그렇지 않은 경우 2**24-1휴대용이어야합니다.
manatwork

@manatwork 대단한 감사합니다. 그게 내가 시도 152에 그것을 아래로 가지고 ~2**242**24-1에러가납니다. 나는 그것들이 어떻게 작동하는지조차 모른다.
코 도스 존슨

PHP가 5.6.0보다 오래된 것 같습니다 :“지수 연산자 (**)를 추가했습니다.”– PHP changelog . 와 동일 pow()하지만 골프를하기에는 더 편리합니다. pastebin.com/jFn6ahFk
manatwork

아 알 겠어요 PHP 5.5는 지원되지 않는 것 같습니다. 귀하의 솔루션을 사용하겠습니다. 이제 150입니다. 다시 감사합니다.
코 도스 존슨

7

Xamarin.Forms C 번호, 317 313 바이트

using Xamarin.Forms;public class A:Application{public A(){var s=new StackLayout{BackgroundColor=Color.White,Orientation=(StackOrientation)1,VerticalOptions=LayoutOptions.End};foreach(var c in"I Voted")s.Children.Add(new Label{Text=c+"",TextColor=c%2<1?Color.Blue:Color.Red});MainPage=new ContentPage{Content=s};}}

VerticalOptions=LayoutOptions.EndiOS에 필요합니다. 그렇지 않으면 상태 표시 줄에 텍스트가 오버레이됩니다. Android에서는 문제가 없으므로 쉼표를 포함하여 34 바이트를 절약 할 수 있습니다.

편집 : 2016-11-14 : -4 바이트

언 골프

using Xamarin.Forms;
public class A : Application
{
    public A()
    {
        // Make a horizontal StackLayout for labels
        var s = new StackLayout
        {
            BackgroundColor = Color.White,
            Orientation = (StackOrientation)1,   // StackOrientation.Horizontal
            VerticalOptions = LayoutOptions.End
        };
        foreach(var c in "I Voted")
            // Make a new label for each letter, then add to StackLayout
            s.Children.Add(new Label
                {
                    // Cast char to string
                    Text = c + "",
                    // Happens that 'I', 'o', and 'e' are all odd in ASCII, and 'V', 't', and 'd' are all even :)
                    TextColor = c%2<1 ? Color.Blue : Color.Red   
                }
            );
        // Set app MainPage to be a new ContentPage, where the content is the StackLayout above
        MainPage = new ContentPage { Content = s };
    }
}

1
그것은 새로운 종류의 아이디어입니다. 한
애디슨 크럼프

7

x86 머신 코드 + DOS + BIOS, 25 바이트

16 진 덤프 :

b8 02 13 b1 07 bd 0b 01 cd 10 c3 49 74 20 74 56
71 6f 74 74 71 65 74 64 71

조립 코드 (입력에 적합) debug.com 하므로 모든 숫자는 16 진수) :

mov ax, 1302
mov cl, 7
mov bp, 10b
int 10
ret
db 'It tVqottqetdq'

BIOS 루틴 을 사용 하여 문자열을 디스플레이 메모리에 출력합니다. 문자열은 다음과 같이 화면의 "무작위"위치에 나타납니다 (아래 참조).

screenshot

문자열은 문자를 포함 I V o t e d "속성"으로 인터리브

74 74 71 74 71 74 71

글자의 색을 지정합니다. 여기서 최상위 유효 자릿수로 7은 "흰색 배경"을 의미하고 최하위 숫자는 전경을 지정합니다 (1 = 파랑; 4 = 빨간색).

문자열의 표시 위치는 dx레지스터에 의해 지정됩니다 . 여기에 언급 된 바와 같이 레지스터의 초기 값은 레지스터의 값과 같습니다 cs. 그리고 그 값은 DOS가로드 된 후 메모리에서 사용 가능한 첫 번째 주소입니다.

DOS의 크기는 일반적으로 64K보다 작습니다. 즉,로드 된 사용자 프로그램의 세그먼트 주소가 16 진수보다 작습니다 1000. 따라서 출력은 디스플레이에서 텍스트의 첫 16 줄 주위에 나타납니다. 이 예에서는 8 행 (dx 불리는 dh8과 같다).

낮은 절반 dx이라고는 dl텍스트를 출력하는 열을 포함한다. 실험에 따르면 BIOS는 오버플로를 검사하지 않으므로 dx열 100과 같은 출력을 요구하는 것은 중요하지 않습니다 .


영리하고 짧고 직관적입니다.
tuskiomi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.