出て投票する


114

今日は2016年11月8日、アメリカ合衆国の選挙の日です。

あなたが投票する資格のある米国市民である場合、この挑戦に答える前にまだ出ていないなら投票してください。誰に投票したかについて話し合ってはいけません。重要なのはあなたが投票したことだけです。

あなたが米国市民でないか、投票する資格がない場合、この挑戦​​に答える前に、あなたが知っている人に誰が外に出て投票していないかを告げることで米国に賛成してください。

チャレンジ

デジタルの「I Voted」ステッカーのように、投票したことを示すプログラムを作成します。

それは、フレーズ合理的な方法には、入力およびマスト出力を取るべきではないI Voted場合Ioおよびe(赤#FF0000)とVt及びd(青#0000FF)。背景は白(#FFFFFF)でなければなりません。

例えば:

「I Voted」のサンプルグラフィック

これらの色は、もちろんアメリカの国旗を表しています(公式の色ではありません)。赤が最初に来るのは、それが一般的なイディオム「赤白と青」で最初に来るからです。

有効であるためには、答えが以下でなければなりません。

  • 指定された配置で指定された色を使用します。

  • 読みやすい単一のフォントとフォントサイズを使用します。この例では、72pt Times New Roman太字を使用していますが、6ptを超える一般的なフォントはおそらく問題ありません。

  • 2つの単語の間に明確なスペースを入れて、フレーズI Voted1行に正確に大文字で入力します。のように見えるべきではありませんIVoted

  • 回答者が大統領またはダウンバロットのレースに誰を投票したか、支持したかを示していない。インターネットの議論を始めないようにしましょう。これは、候補者ではなく投票を祝うことです。

次のように、出力を表示または生成する合理的な方法が有効です。

  • テキストを画像に描画し、それを表示、保存、または生で出力します。

  • 色の書式設定を使用してコンソールにテキストを書き込む。この場合、必要に応じて純粋な赤と青に近づけることができます。テキストの真後ろの領域のみを白にできるのであれば問題ありません。

  • WPF / Windowsフォームにテキストを表示します。

  • テキストを含むHTML / RTF / PDFファイルを出力します。

出力の画像を投稿してください。

バイト単位の最短回答が優先されます。


29
私の実際のステッカーがあなたのもののように見えないことに少しがっかりしました。
ジオビット

39
「あなたが投票したことだけが重要です。」-@HelkaHomba ...それは、「コードを書いている限り、どんなコードを書いてもかまいません」と言っているようなものです。:/
マイケルヤーガー

41
@MichaelYaegerまあ、いくつかのコードを書く方が何も書かないよりもましです。投票は、投票しないよりも優れています。コーディングや投票を行うことを選択した場合、人々はそれを考えてコーディングと投票を行う可能性があります。しかし、私は本当に怒っている議論を避けるためにそれを言った。
カルビンの趣味

43
それが誰かを助けるなら、母音は赤、子音は青です。
mbomb007

34
@ mbomb007さらに便利なことに、奇数のコードポイントの文字は赤で、偶数のコードポイントの文字は青です。
Sp3000

回答:


116

Minecraftチャット(バニラ1.10クライアント、スピゴット1.10サーバー):19バイト

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

またはクライアント側から:

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

Minecraftは、これらの色がプログラムされたカラーコーディングシステムを使用しています。

ここに画像の説明を入力してください

ルールに注意してください:

  • 色の書式設定を使用してテキストをコンソールに書き込む。この場合、必要に応じて純粋な赤と青に近づけることができます。テキストの真後ろの領域のみを白にできる場合は問題ありません。

これらはすべて真実です。
赤と青は近似値です(ただし、非常に似ています)。
Minecraftチャットの背景は透明です。つまり、これを白い背景に置くことができます。(空の世界など)


10
ワオ。私は言葉がありません。それは非常に賢い答えです!
DJMcMayhem

28
Minecraft Chatはチューリング完全であるとは思わないか、プログラミング言語とは見なされません(ただし、これは要件ではなくなる可能性があります)。でも非常に創造的です!:)
カデ

9
@ Shebanggaming.stackexchange.com / questions / 20219 / Minecraftチャットには、コマンドブロックと(ほぼ)すべて同じコマンドがあり、質問が行われたときのすべてのコマンドが確かにあります:
tuskiomi

15
技術的には、バニラのMinecraftに、&sがあるべき§
オリバー・ニッケル

2
うーん、私はそれがあまりにも、クエイク3で行うことができると思う
Sargeのボルシチ

107

C、82 80 78 74 54バイト

各2バイトを節約してくれた@WillihamTotlandと@criptychに感謝します!

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

␛sは0x1Bバイト(エスケープキー)を表します。このコードには印刷できない制御文字が含まれているため、ここに可逆のhexdumpがあります。

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は、その行をaとして定義します"\x1B[%dm"。これは、プレースホルダーを使用したカラーリング用のANSIエスケープシーケンスです。の数字は、printf()これらのプレースホルダーを埋めます。
-betseg

1
"\x1B[47;31m"aをwithに置き換えてbを定義することで、2バイトを削ぎ落としてから"\x1B[34m"putsalternating abprefix を使用できます。
ウィリハムトットランド

3
「\ x1B」の代わりに「\ 33」を使用して、さらに2バイトを保存できます。
criptych

1
criptychが言ったことを拡張すると、これが許可されているかどうかはわかりませんが、の代わりにリテラルエスケープ文字を使用して、さらに4バイトを節約できます\33。C標準がそれについてどう考えているかわからない

3
@paxdiabloは、このメタスレッドによると、コードゴルフでは機能は問題ありません。
betseg

73

Google Blockly10 14ブロック、28 41 35ブライト

コード

ここに画像の説明を入力してください

出力

ここに画像の説明を入力してください

ここで試してみてください

それはhide turtle単なる美学であるため、ブロックをカウントしません。

ブライトはブロックとバイトの組み合わせです。これをカウントする方法としてのメタ投稿はまだありませんが、後で作成します。今のところ、これは私が数える方法です:

  • I o e、8ブライト
  • V t d、10ブライト(ここでは2つの先行スペース)
  • 色、各1ブライト、合計2
  • 90、2ブライト
  • 999、3ブライト
  • 0、1ブライト
  • 右折、2ブライト
  • 前進、2ブライト
  • 通常ブロック、各1ブライト、合計5

Google Blocklyはゴルフに使用されることはめったにないので、このチャレンジの枠を超えて考えているので、これが有効な投稿であることを願っています。


20
レコードの場合、これは有効です。ユニークな言語を見るのは素晴らしいことです。ただし、Google Blocklyでバイトカウントに関するメタコンセンサスがない限り、勝者を選択する際にそれを無視することがあります。
カルビンの趣味

2
ここで関連するディスカッションを見つけることができます。CC @HelkaHomba。
-Scimonster

これらの3つのスペースI oを2つのemスペースに置き換えることについて考えていますか
アンドレアラザロット

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
これをStack Snippetに変えてみませんか?
ニール

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}。私にとって動作する最新バージョンはバージョンです。
ニール

39

LaTeX、147 126バイト

\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バイトを節約し、@AndreïKostyrkaのおかげでカーニングが向上しました。

これは、最初の行にこれを含むa4ページを印刷します(これは、ページ1を下部にも印刷することに注意してください)。

ここに画像の説明を入力してください


13
LaTeXがVoカーニングのきれいさをタイプセットすると思っていたでしょう...
-Sanchises

@sanchises各文字は個別のコマンドに含まれているため、適切なカーニングが破壊されると思います。
致命的

そうだね。ゴルフが必要条件でなければ、どういうわけかそれは可能だと確信していますが。
-Sanchises

@sanchises これは間違いなく可能ですが、これは実際にこのthisい解決策よりも長くなります。
16年

\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バイトの純粋な活版印刷の美しさをもたらします。
アンドレイKostyrka

34

Windows 10バッチ、51 50バイト

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

ここで、␛はANSI Escape 0x1B文字を表します。カラーフォーマットを使用した出力。編集:@ brianush1のおかげで1バイト保存されました。これを生成するコードを書いてみましたが、97バイトかかりました。出力:

私が投票しました


1
@color fc&echo I... を使用すると、1バイト
ずつ

1
面白い、私は実現しなかった、WindowsのターミナルサポートANSIエスケープシーケンス
マーク・K・コーワン

3
@MarkKCowanこれはWindows 10のみで、Redstone Updateを投稿しています(と思います!)。XPをインストールするのを妨げる数少ないものの1つです。
wizzwizz4

@ ConEmuはサポートしていwizzwizz4これらすぎ:)確かにこれは、Windowsから10周年(すなわちレッドストーン1)である
明日

@Asuその上にXPをインストールしました。
wizzwizz4

28

JavaScript、71バイト

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

console.logカラーで印刷するの機能を利用します。スタックスニペットでは機能しないため、この回答をコンソールに貼り付けてテストする必要があります。

ここに画像の説明を入力してください

@Mastへの画像クレジット


それがまさに私が思いついたものです(笑)。最短の代替案は次のようになると思いますconsole.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
-ETHproductions

Node.jsでも機能しません。:(
ヨルダン

これが実際に機能することに驚いたが、機能する
マスト

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でテストし、以下を生成します。

ここに画像の説明を入力してください


4
ああ、私はel()前に見たことがありません。Rをもっと学んでくれてありがとう!以来textベクトル化されて、あなたはforループをスキップして、ちょうど書くことができます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ます。あなたを迷わせ、最適でない編集を提案することをおologiesびします。
-rturnbull

1
色が落ちていませんか?「I」と「V」は異なる色であってはなりませんか?
JDL

2
el()以前のstrsplit回答の99%が1バイト改善されると確信しています。
Vlo

21

愛する152の142 136バイト

ちょっとしたプロトタイプ言語の楽しさを見せましょう!ゴルフのタスクには最適ではありませんが(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

スクリーンショット:

スクリーンショット


完全にバージョンアップされていないバージョン:

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…それらの変数?
マナトワーク

1
@ ConorO'Brienこれは完全なプログラムです。love.draw()オーバーライドする組み込み関数で、描画ステップで実行されます。そこのようなものもありますlove.update()し、love.load()レンダリングループのさまざまな部分については、しかし、彼らはオプションです。これは素晴らしい言語であり、非常に簡単に始めることができます。私は時々それを使ってゲームのアイデアをプロトタイプ化します。
ジオビット

2
@cat彼らはそうしません。コンソールでオーバープリントしているのではなく、グラフィカルなプリントです。したがって、ここでのスペースは、「この領域に背景色を塗る」のではなく、「この領域に何も塗らない」だけです。
ジオビット

2
@ZoltánSchmidtありがとう!他にもいくつかのLÖVEの回答があります。それらをご覧になりたい場合は、D
Geobits

18

ホットスーププロセッサ、48バイト

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

改変されていないバージョンは次のとおりです。

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-2550,0,-1青で0,-1,0動作し、緑で-1,0,0動作し、...黒で動作しますか?(ただし、赤-257,0,0511,0,0動作するので、MOD 256が進行しているのはファンキーです)

ここに画像の説明を入力してください


2番目のスペースがmes最初のスペースを上書きしないのはなぜですか?

@catスペースは実際には何も描画せず、ある意味でカーソル位置を進めるだけ
です-Sp3000

1
255に対して-1を使用する賢い。+ 1を持っている
チョイス

@Cyoceまたは、実際には-255ですか?
sagiksp

18

MATLAB、74バイト

imshow配列を使用して、白い50x50(州ごとに1列)の背景を作成しますones。次に、プロパティ名短縮して色を取得するという私のトリックを使用して、テキストを表示します。デフォルトのフォントは固定幅ではないため、テキストにはスペースが埋め込まれます。

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

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください

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')

ここに画像の説明を入力してください


<a href>代わりに書くことができます<a href="">。気に入らない場合は、を使用できます<a href=#>
イスマエルミゲル

@IsmaelMiguelクレバー。<a>うまくいきませんでした。
Sanchises

のみを使用すること<a>は、クリック可能なリンクとは見なされません。青色にするには、1つと見なす必要があります。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:

ここに画像の説明を入力してください

完全なImageMagickコマンドのゴルフは

  • デフォルトconvertユーティリティを明示的に呼び出さない

  • xc:代わりに使用しますcanvas:xc:の古い同義語ですcanvas:; ImageMagickがそれを排除することはありません)

  • キャンバスの色を指定せず、ImageMagickのデフォルトに依存します。デフォルトはたまたま白です

  • 60ジオメトリから幅を削除します(省略した場合、width == height)

  • 「!」を削除する 以下のような非正方形のキャンバスを作成するためにのみ必要なジオメトリからcanvas:white[60x30!]

  • 出力ファイルとしてではx:なく古いshow:ファイルを使用します(ImageMagickがXサポート付きでビルドされたと仮定します)

  • テキスト文字列の整列に使用していた空白を削除します

  • コマンドの複数の行を結合します(行間のバックスラッシュCRを削除しました)

選出後に非常に傾いている場合は-rotate 180show:ディレクティブの前に12バイトを追加します。

ここに画像の説明を入力してください


4
私は、ゴルフのないバージョンがゴルフのバージョンと劇的に異なるのが大好きです。
アンドレイKostyrka

15

Bash、35バイト

私のスクリプトはこんな感じ

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

スクリプトファイルのxxd:

0000000:6563 686f 2022 1b5b 3437 3b33 316d 4920 echo "。[47; 31mI 
0000010:686f 7065 1b5b 3334 6d64 0808 0874 0808 hope。[34md ... t ..
0000020:0876 22 .v "

入力:ctrl-v-escとctrl-vhは、エスケープとバックスペース(^ [と^ H)を挿入します。

ここに画像の説明を入力してください


これはどのように作動しますか?説明は超だろう
cat

2
@catは、すべての赤い文字(「h」と「p」を代役として)を書き込み、色を青に設定し、最後に「d」を書き込みます。最後に、カーソルを左に移動して「t」と「V」を前のスタンドインに追加します(上記の表示で「^ H」で表されるascii 0x08は左に1文字移動します)。色の変更のために多くのエスケープシーケンスを回避する賢い方法。また、リテラルエスケープ文字(0x1B、 "^ ["で表される)を使用して、私のような類似の回答と比較してスペースを節約します。
デイブ

また、端末がデフォルトで白い背景に設定されていると仮定することで3バイトを節約できます(他のほとんどの端末の回答はすでにこれを仮定しています)。
デイブ

2つの引用符を削除し、セミコロンの前にバックスラッシュ(エスケープ文字)を追加して、バイトを保存できます。また、あなたのスクリプトが持つケースvを(あなたのコマンドライン1は結構です)。


14

Java、322 319 318 309 304 229 217バイト

ケビンのおかげで-9バイト。
-75バイト、Angzurilのおかげで、古い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);}};}

出力:

ここに画像の説明を入力してください


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,990,0,99,99画面上のテキストに十分な大きさです。
ケビンCruijssen 16年

1
(c<33||i++%2<1)?STIL括弧との変化を除去することにより、3バイトでgolfedすることができます|||
ケビンCruijssen

1
私はゴルフにいくつかのことを見つけました:new JComponentto new Container(-1); 削除char c="IVoted".charAt(i);g.drawString(c+""g.drawString("IVoted".charAt(i)+""(-8)に変更します。
ケビン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..

ここに画像の説明を入力してください

着色にANSIカラーコードを使用するため、オンラインでは機能しません。


これはストレートなエンコーディングですか、それとも他の巧妙なトリックを使用していますか?
コナーオブライエン

2
@ ConorO'Brienバブルガムには巧妙なトリックはありません。正直に言うと、この答えはほとんど私が取り組んでいる実際の答えの副作用でした。
spaghetto

13

PowerShell v2 +、71 59 57 55バイト

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

@flashbangのおかげで2バイト節約されました ... @ConnorLSWのおかげでさらに 2バイト節約されました

"I Voted"それを取り、char-array に変換してからloopsします|%{...}。各文字は、我々は実行Write-Host-bのackground色White-noNewLine、および-foreground色があることを、適切なインデックス。これは、奇数のASCII値が赤で、偶数のASCII値が青であるという事実を$_%2インデックスとして利用します。

PowerShellのコンソールの色は非常に限られているため、これが最も近い近似値です。赤に4DarkRed)を使用するとゴルファーになりますが、見た目が正しくないため、色の精度のために数バイトを犠牲にしています。

以下は出力であり、コンソールが表示できる16の使用可能な色が続きます。マイクロソフトは彼らの知恵で、前景色から背景色を少しだけ離すことを選んだため、背景は真に白ではないことに注意してください。

コンソール出力


IIRCでは、古代のものでは、前景に4ビット、背景に3ビットがあったため、背景は「暗い」色0〜7のみでした。コンソールはまだそれに従っていますか?

@Hurkyl Kinda。EGAカラーパレットに基づいているように見えますが、PowerShellがそのスキームを保持している歴史的な理由はわかりません。Win32 APIの下位互換性に埋め込まれている可能性が高いため、それらの16色のみを使用する必要がありました。
AdmBorkBork

背景色を15に設定すると機能しませんか?
Random832

@ Random832ステッカーの白い背景のためです。
geisterfurz007

@ geisterfurz007、TimmyD、背景を「白」ではなく「15」に設定して[画像の実際の背景は#7に見えるので]明るい白を取得できるかどうか尋ねました。しかし、もっと見ると、ディスプレイ全体が奇妙に見えます-例の行と「I」と次のスペースの間の灰色の線の境界線は、PowerShellがコンソールで実行されている場合は意味がありません-あなたは使用していますかConEmuのような他のツール?もしそうなら、これをマイクロソフトのせいにするのは意味がありません。
Random832

11

Python、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ではサポートされていません。
ケード

3
画像を追加することに注意してください?
カルビンの趣味

9
に変更'blue' if c else 'red'すると、5バイト節約できます'brleude'[c^1::2]
ケード

2
標準モジュールではないので、おそらくタイトルに+ termcolorを追加する必要があります。また:from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
Sp3000

8

Jolf、53バイト

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

印刷できないものがあります。ここで試してみてください!

Jolfの出力はHTML対応です。モジュラス2のような巧妙な方法で色を決定しようとしましたが、それだけ長く(約69バイト)しか巻きません。したがって、出力はHTMLになります。

出力:

通常の「I Voted」

(拡大版)

大きな「私は投票しました」


8
これはひどいです。HTMLで3バイトしか保存していません:P
ASCIIのみ

@EriktheGolferそれは本当にFirefoxでのみ動作します。
コナーオブライエン

@ ConorO'Brienああ、私はChromeを使用しています。ありがとう。
エリックアウトゴルファー16年

1
... aおよびHTMLの回答がこれを凌gしました。
betseg

blueと書くことはできません00fか?
イスマエルミゲル


8

sh、61 49バイト

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

これには印刷できないものが含まれているため、ここにリバーシブルのxxd hexdumpがあります。

00000000:6563 686f 2022 1b5b 3437 3b33 313b 316d echo "。[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 "
私が投票しました
Xterm(322)

-12バイトの4198(manatwork)に感謝します。


背景色と前景色を別々に設定するのはなぜですか?で開始し[47;31;1mます。また、1太字はまで有効な0ので、文字ごとに何度も設定する必要はありません。
マナトワーク

@manatworkああ、私はあなたがそれをリセットしなければならないと思った!
エリックアウトゴルファー

それshが古いBourneシェルよりも新しいものである場合、いくつかのパラメーター拡張が役立つ場合がありますs=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}
マナトワーク

@manatwork動作しません。モダンではないようです。
エリックアウトゴルファー

@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のボルシチに

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";

||JavaScript(x||y -> x?x:y)のようにCでも機能する場合c&1||4、バイトを保存することができます。
ETHproductions

1
@ETHproductionsはCではそのようには機能しません。また||、短絡して&& いる、関係する値に関係なく、常に1または0を返します。
デイブ

@デイブ今日は何かを学んだ...-

これは背景色を設定しません。また、\332バイトを保存する代わりにリテラルエスケープ文字を使用することもできます(それが何らかの形で規則に違反していない場合)。

@yellowantphilは、デフォルトの端末の背景が白に設定されていることを前提としています(チャレンジでは、白の背景にそれを配置する必要があるだけだからです)。実際、OS Xでは、ターミナルはすぐに使える白地に黒です。
デイブ

8

ノード、57 55 41バイト

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

各置き換えqリテラルバイトと1Bし、Hバイトとを08実行する前に。

WindowsコンピューターのConEmuターミナルエミュレーターでの外観は次のとおりです(ズームイン)。

ここに画像の説明を入力してください


それはどんな端末エミュレーター!?


8

Python IDLE、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)

これを印刷します:

ここに画像の説明を入力してください

これord(i)%2は、文字のコードポイントのパリティをチェックし、それに応じてERR/ OUTに出力するために機能します。


8

REBOL100 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バイトです。

改変されていないバージョンは次のとおりです。

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"
]

左側に、各テキストブロックに「スペース0x0」が追加され、右側にデフォルトの2x2パディングが追加されています。

REBOL投票しました
(ソース:canardpc.com


7

Perl、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")コードの最後に追加して、通常の状態に戻します)。

デフォルトでは、端末は通常黒の背景ですが、オプションで白に変更することもできますが、個人的には不正行為だとは思いません。

写真付き: ここに画像の説明を入力してください


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

出力:

ここに画像の説明を入力してください


2
header()通話をスキップします。コードはコマンドラインからも正常に動作します。error_reportingデフォルト値は、通知を示していない、あなたの文字列リテラルを引用しないように、一般的に許容可能です。または、気に入らない場合str_split("I Voted")は、文字を個別に列挙するよりも短くなります。そして、$ iへの割り当てを最初の使用に移動します。
マナトワーク

1
~2**24の代わりに動作するようです0xFFFFFF。これがすべてのアーキテクチャに有効かどうかはわかりません。そうで2**24-1なければ、ポータブルでなければなりません。
マナトワーク

@manatwork本当にありがとう。それは私が試した152にそれを降りて~2**242**24-1私はエラーを得ました。私はそれらがどのように機能するかさえ知りません。
コドスジョンソン

おそらく、あなたのPHPは5.6.0よりも古いです:「指数演算子(**)を追加しました。」 - PHPの変更履歴。と同じですがpow()、ゴルフに便利です。pastebin.com/jFn6ahFk
manatwork

ああなるほど。php 5.5はサポートされていないようですので、ソリューションを使用します。150になりました。ありがとうございます。
Kodosジョンソン

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
それは新しいアイデアです。+1
アディソンクランプ

7

x86マシンコード+ DOS + BIOS、25バイト

Hexdump:

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ルーチンを使用して、文字列をディスプレイメモリに出力します。文字列は、次のように画面上の「ランダムな」位置に表示されます(以下を参照)。

スクリーンショット

文字列には、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です)。

の下位半分にはdxdlテキストが出力される列が含まれます。実験では、BIOSはオーバーフローをチェックしないためdx、たとえば列100で出力を要求するかどうかは関係ありません。


賢く、短く、本当に直感的です。
tuskiomi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.