ออกไปและลงคะแนน


114

วันนี้คือวันที่ 8 พฤศจิกายน 2016 วันเลือกตั้งในสหรัฐอเมริกา

หากคุณเป็นพลเมืองอเมริกันที่มีสิทธิ์ลงคะแนนเสียงให้ออกไปและลงคะแนนถ้าคุณยังไม่ได้ตอบคำถามนี้ก่อน อย่าพูดคุยกับคนที่คุณโหวตให้ เรื่องสำคัญที่คุณโหวตเท่านั้น

หากคุณไม่ใช่พลเมืองของสหรัฐอเมริกาหรือไม่มีสิทธิ์ออกเสียงลงคะแนนก่อนที่จะตอบคำถามนี้ให้ทำสิ่งที่ชอบด้วยการบอกกับทุกคนที่คุณรู้ว่าใครเป็นพลเมืองที่มีสิทธิ์ออกนอกบ้านและลงคะแนนหากพวกเขายังไม่ได้

ท้าทาย

เขียนโปรแกรมที่บ่งบอกว่าคุณได้รับการโหวตเช่นดิจิตอล"ผมโหวต" สติกเกอร์

มันควรจะใช้เวลาไม่ต้องนำเข้าและส่งออกในทางที่เหมาะสมวลีI Votedที่I, oและeมีสีแดง ( #FF0000) และV, tและdสีฟ้า ( #0000FF) พื้นหลังจะต้องเป็นสีขาว ( #FFFFFF)

ตัวอย่างเช่น:

กราฟิกตัวอย่าง "I V โหวต"

แน่นอนว่าสีเหล่านี้เป็นตัวแทนของธงชาติอเมริกัน (แม้ว่าจะไม่ใช่สีทางการก็ตาม) สีแดงมาก่อนเพราะมันมาก่อนในสำนวนสามัญ "สีแดงสีขาวและสีฟ้า"

เพื่อความถูกต้องคำตอบจะต้อง:

  • ใช้สีที่ระบุในข้อตกลงที่ระบุ

  • ใช้แบบอักษรที่อ่านง่ายและขนาดตัวอักษร ตัวอย่างนี้ใช้ตัวหนา 72pt Times New Roman แต่ตัวอักษรทั่วไปใด ๆ ด้านบน 6 พอยต์อาจจะใช้ได้

  • มีเพียงวลีI Votedในบรรทัดเดียวพิมพ์ใหญ่ให้ถูกต้องด้วยช่องว่างระหว่างสองคำ IVotedมันไม่ควรมีลักษณะเช่น

  • ไม่ระบุว่าใครเป็นผู้ตอบให้ลงคะแนนหรือสนับสนุนการเป็นประธานาธิบดีหรือการลงคะแนนเสียง อย่าเริ่มการโต้วาทีทางอินเทอร์เน็ต นี่คือการฉลองการลงคะแนนไม่ใช่ผู้สมัคร

วิธีที่เหมาะสมในการแสดงหรือสร้างเอาต์พุตนั้นถูกต้องเช่น:

  • การวาดข้อความไปยังรูปภาพที่แสดงแล้วบันทึกหรือส่งออกข้อมูลดิบ

  • การเขียนข้อความไปยังคอนโซลโดยใช้การจัดรูปแบบสี ในกรณีนี้คุณอาจประมาณสีแดงและน้ำเงินบริสุทธิ์หากจำเป็นและมันก็โอเคถ้าเฉพาะพื้นที่ด้านหลังข้อความสามารถทำให้ขาว

  • การแสดงข้อความบนแบบฟอร์ม WPF / Windows

  • การส่งออกไฟล์ HTML / RTF / PDF ด้วยข้อความ

กรุณาโพสต์ภาพของการส่งออกของคุณ

คำตอบที่สั้นที่สุดเป็นไบต์ชนะ


29
ผิดหวังนิดหน่อยสติกเกอร์จริงของฉันดูไม่เหมือนคุณเลย
Geobits

39
"มันเป็นเรื่องสำคัญที่คุณลงคะแนนเท่านั้น" - @HelkaHomba ... มันก็เหมือนกับการพูดว่า "มันไม่สำคัญว่าคุณจะเขียนโค้ดอะไรตราบใดที่คุณเขียนโค้ด" : /
Michael Yaeger

41
@MichaelYaeger เอาล่ะการเขียนโค้ดจะดีกว่าการเขียนไม่มีเลย การลงคะแนนดีกว่าไม่ลงคะแนน โอกาสที่คนจะใส่ความคิดลงไปในการเข้ารหัสและลงคะแนนถ้าพวกเขาเลือกที่จะทำ แต่จริงๆแล้วฉันพูดเพื่อช่วยหลีกเลี่ยงการโต้วาทีที่โกรธแค้น
งานอดิเรกของ Calvin

43
ถ้ามันช่วยใครก็ได้สระก็จะเป็นสีแดงเสียงพยัญชนะจะเป็นสีน้ำเงิน
mbomb007

34
@ mbomb007 อย่างเป็นประโยชน์มากกว่าตัวอักษรที่มีจุดรหัสคี่เป็นสีแดงและตัวอักษรที่มีจุดรหัสคู่เป็นสีน้ำเงิน
Sp3000

คำตอบ:


116

Minecraft Chat (ลูกค้าวานิลลา 1.10, เดือยเซิร์ฟเวอร์ 1.10): 19 ไบต์

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

หรือจากลูกค้า:

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

Minecraft ใช้ระบบการเข้ารหัสสีด้วยโปรแกรมเหล่านี้

ป้อนคำอธิบายรูปภาพที่นี่

คำนึงถึงกฎ:

  • การเขียนข้อความไปยังคอนโซลโดยใช้การจัดรูปแบบสี ในกรณีนี้คุณอาจประมาณสีแดงและน้ำเงินบริสุทธิ์หากจำเป็นและมันก็โอเคถ้าเฉพาะพื้นที่ด้านหลังข้อความสามารถทำให้ขาว

ทั้งหมดนี้เป็นความจริงเนื่องจาก:
การประมาณสีแดงและสีน้ำเงิน (แม้ว่าจะยังคล้ายกันมาก)
พื้นหลังในการแชทของ Minecraft นั้นโปร่งใสหมายความว่าเป็นไปได้ที่จะวางลงบนพื้นหลังสีขาว (เช่นโลกที่ว่างเปล่า)


10
ว้าว. ฉันพูดไม่ออก นั่นเป็นคำตอบที่ฉลาดมาก!
DJMcMayhem

28
ฉันไม่คิดว่า Minecraft Chat นั้นเป็นภาษาทัวริงที่สมบูรณ์หรือถือว่าเป็นภาษาการเขียนโปรแกรม (แม้ว่านี่อาจไม่เป็นข้อกำหนด) แม้ว่าความคิดสร้างสรรค์มาก! :)
Kade

9
@Shebang gaming.stackexchange.com/questions/20219/... Minecraft แชทมี (เกือบ) ทุกคำสั่งเดียวกับคำสั่งบล็อกและแน่นอนคำสั่งทั้งหมดจากด้านหลังเมื่อคำถามที่ถูกถาม :-)
tuskiomi

15
ในทางเทคนิคในวานิลลา Minecraft &ควรเป็น§s
Oliver Ni

2
อืมฉันคิดว่ามันสามารถทำได้ใน Quake 3 ด้วย
Sarge Borsch

107

C, 82 80 78 74 54 ไบต์

ขอบคุณ @WillihamTotland และ @criptych สำหรับการบันทึก 2 ไบต์ต่อครั้ง!

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

โดยที่ represents แทน 0x1B ไบต์ (คีย์ escape) เนื่องจากรหัสนี้มีอักขระควบคุมที่ไม่สามารถพิมพ์ได้นี่คือ 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"และกำหนด b เป็น"\x1B[34m"แล้วใช้putsกับสลับaและbคำนำหน้า
Williham Totland

3
คุณสามารถบันทึกอีก 2 ไบต์ด้วย "\ 33" แทน "\ x1B"
criptych

1
ขยายสิ่ง criptych กล่าวว่าผมไม่ทราบว่านี้จะได้รับอนุญาต \33แต่คุณต้องการบันทึกอีกสี่ไบต์โดยใช้ตัวหนีตัวอักษรแทน ไม่แน่ใจว่ามาตรฐาน C คิดอย่างไร ...

3
@paxdiablo ตามนี้ด้ายเมตา, ฟังก์ชั่นสำหรับการเล่นกอล์ฟตกลงรหัส
betseg

73

Google Blockly , 10 14 บล็อก, 28 41 35 blytes

รหัส

ป้อนคำอธิบายรูปภาพที่นี่

เอาท์พุต

ป้อนคำอธิบายรูปภาพที่นี่

ลองที่นี่

ไม่นับhide turtleบล็อกเพราะมันเป็นแค่สุนทรียภาพ

ไบลท์คือการรวมกันของบล็อกและไบต์ไม่มีเมตาโพสต์ยังเป็นวิธีการนับ แต่ฉันจะสร้างทีหลัง สำหรับตอนนี้นี่เป็นวิธีที่ฉันนับ:

  • I o e8 blytes
  • V t d, 10 blytes (2 ช่องว่างนำหน้าที่นี่)
  • สี 1 blyte ละ 2 ทั้งหมด
  • 90, 2 blytes
  • 999, 3 ไบท์
  • 0, 1 ไบลท์
  • เลี้ยวขวา 2 blytes
  • ก้าวไปข้างหน้า 2 blytes
  • บล็อกปกติ 1 blyte ละ 5 ทั้งหมด

เนื่องจาก Google Blockly ไม่ค่อยได้ใช้สำหรับเล่นกอล์ฟและฉันคิดว่า waaay นอกกรอบสำหรับความท้าทายนี้ฉันหวังว่านี่จะเป็นข้อมูลที่ถูกต้อง


20
สำหรับบันทึกนี้ถูกต้อง ดีใจที่ได้เห็นภาษาที่ไม่เหมือนใคร แม้ว่าจะมีเมตาดาต้าที่สอดคล้องกันในการนับจำนวนไบต์ใน Google Blockly แต่ฉันอาจเพิกเฉยเมื่อเลือกผู้ชนะ
งานอดิเรกของ Calvin

2
คุณอาจพบการสนทนาที่เกี่ยวข้องที่นี่ CC @HelkaHomba
Scimonster

คุณเคยลองเปลี่ยนช่องว่างทั้งสามนี้ด้วยช่องว่างI oสองช่องหรือไม่?
Andrea Lazzarotto

Google Blockly จะถูกแปลเป็น JavaScript จากนั้นเรียกใช้ คุณต้องInspect Elementและเรียกใช้รหัสใน Blockly API เพื่อรับรหัส JavaScript จริง

1
สามารถใช้ Scratch ได้หรือไม่
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งาน
Conor O'Brien

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
น่าเสียดายที่เวอร์ชันปัจจุบันดูเหมือนจะไม่สามารถใช้งานได้ในรูปแบบสแต็กเกร็ดเล็กเกร็ดน้อยรุ่นล่าสุดที่ใช้งานได้สำหรับฉันคือc{color:blue}เวอร์ชัน
Neil

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 นี้เป็นไปได้แน่นอนแต่นี่นานกว่าทางออกที่น่าเกลียดนี้
ทำให้เสียชีวิต

\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 Batch, 51 50 ไบต์

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

โดยที่␛หมายถึงอักขระ ANSI Escape 0x1B เอาท์พุทโดยใช้การจัดรูปแบบสี แก้ไข: บันทึก 1 ไบต์ต้องขอบคุณ @ brianush1 ฉันพยายามเขียนรหัสเพื่อสร้างสิ่งนี้ แต่ใช้เวลา 97 ไบต์ เอาท์พุท:

ฉันโหวต


1
คุณสามารถตีมันลง 1 ไบต์ถ้าคุณใช้@color fc&echo I...
brianush1

1
ที่น่าสนใจฉันไม่ทราบว่าเทอร์มินัล Windows รองรับลำดับการหลบหนีของ ANSI
Mark K Cowan

3
@ MarkKCowan เป็นเพียง Windows 10 และ (ฉันคิดว่า!) โพสต์ Redstone Update เป็นหนึ่งในไม่กี่สิ่งที่ทำให้ฉันหยุดการติดตั้ง XP บนมัน
wizzwizz4

@ wizzwizz4 ConEmu สนับสนุนสิ่งเหล่านี้ด้วย :) อันนี้มาจาก Windows ครบรอบ 10 ปี (เช่น redstone 1)
Asu

@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 เช่นกัน :(
Jordan

ฉันประหลาดใจที่มันใช้งานได้จริงแต่มันก็เป็นเช่นนั้น
เสา

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มีการ vectorized 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()ปรับปรุง 99% ของstrsplitคำตอบก่อนหน้าทั้งหมด1 ไบต์
Vlo

21

เลิฟ , 152 142 136 ไบต์

มาลองแสดงให้เห็นถึงภาษาเล็ก ๆ น้อย ๆ เพื่อสร้างต้นแบบภาษาสนุก ๆ ! มันไม่สมบูรณ์แบบสำหรับงานตีกอล์ฟ (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

ภาพหน้าจอ:

ภาพหน้าจอ


เวอร์ชันที่ไม่ถูกปรับแต่งอย่างสมบูรณ์:

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
ฉันชอบที่คุณใช้อย่างอื่นที่ไม่ใช่จาวา
AdmBorkBork

5
255 …มากมายสำหรับพวกเขา
จัดการ

1
@ ConorO'Brien นี่เป็นโปรแกรมเต็มรูปแบบ love.draw()เป็นฟังก์ชั่นในตัวที่คุณลบล้างซึ่งทำงานในขั้นตอนการวาด นอกจากนี้ยังมีสิ่งที่ชอบlove.update()และlove.load()สำหรับส่วนต่างๆของลูปการเรนเดอร์ แต่พวกมันเป็นตัวเลือก มันเป็นภาษาที่ดีและคุณสามารถเริ่มต้นกับมันได้อย่างง่ายดายมาก บางครั้งฉันก็ใช้มันกับแนวคิดเกมต้นแบบ
Geobits

2
@cat พวกเขาทำไม่ได้ มันไม่เหมือนกับที่ฉันพิมพ์ทับพวกเขาบนคอนโซลมันเป็นภาพกราฟิก พื้นที่ที่นี่ก็แค่ "ไม่ทาสีอะไรในบริเวณนี้" ไม่ใช่ "ทาสีพื้นหลังบริเวณนี้ด้วยสี"
Geobits

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-255แต่0,0,-1ทำงานเพื่อสีน้ำเงิน0,-1,0ทำงานเพื่อสีเขียวและ-1,0,0ทำงานเพื่อ ... สีดำ? ( -257,0,0และใช้511,0,0งานได้กับสีแดง แต่มีบางอย่างที่ขี้ขลาดเกี่ยวกับ mod 256 เกิดขึ้น)

ป้อนคำอธิบายรูปภาพที่นี่


ทำไมช่องว่างที่สองไม่mesเขียนทับช่องแรก
แมว

@cat Spaces ไม่จริงวาดอะไรก็แค่ก้าวหน้าในตำแหน่งเคอร์เซอร์ในความรู้สึก
SP3000

1
ฉลาดใช้ -1 สำหรับ 255 มี +1
Cyoce

@Cyoce หรืออาจจะเป็น -255 จริง ๆ ?
sagiksp

18

MATLAB, 74 ไบต์

เราสร้าง 50x50 สีขาว (คอลัมน์หนึ่งสำหรับแต่ละรัฐ) พื้นหลังใช้ของอาร์เรย์ของimshow 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=#>
Ismael Miguel

@IsmaelMiguel Clever <a>ไม่ทำงาน
Sanchises

การใช้อย่างเดียว<a>ไม่ถือว่าเป็นลิงก์แบบคลิกได้ เพื่อให้ได้สีฟ้าจะต้องมีการพิจารณาเป็นหนึ่ง ใน CSS, a[href]ตัวเลือกที่อาจจะ ตราบใดที่มีแอตทริบิวต์hrefมันก็เป็นลิงค์ที่คลิกได้ นั่นเป็นสาเหตุที่การใช้อย่างเดียว<a>ไม่ได้ผล
Ismael Miguel

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:

Ungolfed:

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ออกจากเรขาคณิต (เมื่อเว้นไว้ความกว้าง == สูง)

  • กำลังลบ "!" จากรูปทรงเรขาคณิตซึ่งจำเป็นเฉพาะในการผลิตผ้าใบที่ไม่ใช่สี่เหลี่ยมเช่นcanvas:white[60x30!]

  • ใช้เก่ากว่าx:แทนที่จะshow:เป็นไฟล์ที่ส่งออก (ถือว่า ImageMagick สร้างขึ้นด้วยXการสนับสนุน)

  • ลบช่องว่างบางส่วนที่ฉันเคยใช้ในการจัดเรียงสตริงข้อความ

  • การรวมหลายบรรทัดของคำสั่ง (ลบ backslash-CR ระหว่างบรรทัด)

หากคุณมีแนวโน้มมากขึ้นหลังการเลือกตั้งให้เพิ่ม 12 ไบต์-rotate 180ก่อนหน้าshow:คำสั่ง:

ป้อนคำอธิบายรูปภาพที่นี่


4
ฉันชอบที่เวอร์ชั่นที่ไม่ได้รับการตีกอล์ฟนั้นแตกต่างจากกอล์ฟอย่างสิ้นเชิง
Andreï 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 หวัง [34md ...
0000020: 0876 22 .v "

พิมพ์: ctrl-v-esc และ ctrl-vh จะแทรก escapes และ backspaces (^ [และ ^ H)

ป้อนคำอธิบายรูปภาพที่นี่


มันทำงานอย่างไร คำอธิบายจะเป็นซูเปอร์
แมว

2
@cat ดูเหมือนจะเขียนตัวอักษรสีแดงทั้งหมด (ด้วย "h" และ "p" เป็น stand-in) จากนั้นตั้งค่าสีเป็นสีน้ำเงินและเขียน "d" ที่ท้าย ในที่สุดมันก็เลื่อนเคอร์เซอร์ไปทางซ้ายเพื่อเพิ่ม "t" และ "V" เหนือ stand-ins ก่อนหน้า (ascii 0x08 ซึ่งแสดงด้วย "^ H" ในการแสดงด้านบนเลื่อนไปทางซ้าย 1 ตัวอักษร) วิธีที่ชาญฉลาดในการหลีกเลี่ยงลำดับการหลีกเลี่ยงมากมายสำหรับการเปลี่ยนสี นอกจากนี้ยังใช้อักขระหลบหนีตามตัวอักษร (0x1B ซึ่งแสดงเป็น "^ [") ซึ่งช่วยประหยัดพื้นที่บางส่วนเมื่อเทียบกับคำตอบที่คล้ายกันเช่นฉัน
เดฟ

นอกจากนี้: สามารถบันทึก 3 ไบต์ได้โดยสมมติว่าเทอร์มินัลถูกตั้งค่าเป็นพื้นหลังสีขาวตามค่าเริ่มต้น (เทอร์มินัลอื่นส่วนใหญ่ตอบคำถามนี้แล้ว)
เดฟ

คุณสามารถบันทึกไบต์ด้วยการลบเครื่องหมายคำพูดสองคำและเพิ่มเครื่องหมายแบ็กสแลช (อักขระเลี่ยง) ก่อนเครื่องหมายอัฒภาค นอกจากนี้ยังสคริปต์ของคุณมีต่ำกว่ากรณีโวลต์ (หนึ่งบรรทัดคำสั่งของคุณเป็นดี)

15

Mathematica (เอาท์พุทภาพ REPL), 65 49 ไบต์

Overlay@{"I  o e"~Style~Red,"  V t d"~Style~Blue}

การแสดงออกแบบกราฟิก REPL


3
"ใช้ส่วนตัวหรือไม่" นั่นคืออะไร?
Conor O'Brien


นี่คือ 49 ไบต์: Overlay@{"I o e"~Style~Red," V t d"~Style~Blue}(มีที่ควรจะเป็นสองช่องว่างระหว่างฉันและ o และก่อน V)
Gerli

14

Java, 322 319 318 309 304 229 217 ไบต์

-9 ไบต์ขอบคุณ kevin
-75 ไบต์ขอบคุณ Angzuril คำบรรยายภาพที่ดีสำหรับคลาส awt เก่ามักลืมว่ามีอยู่
-12 ไบต์ขอบคุณ user902383

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)?สามารถเล่นกอล์ฟได้c<33|i++%2<1?และtrueสามารถเล่นกอล์ฟ1>0ได้ที่ นอกจากนี้ @HelkaHomba นี่เป็นผลลัพธ์ที่ถูกต้องหรือไม่ เนื่องจากมันมีช่องว่างระหว่างV o t e d? โอ้และทำไม0,0,999,99? 0,0,99,99มีขนาดใหญ่พอสำหรับข้อความบนหน้าจอของฉัน
Kevin Cruijssen

1
(c<33||i++%2<1)?สามารถสไตล์จะแข็งแรงเล่นกอล์ฟโดยสามไบต์โดยการเอาวงเล็บและการเปลี่ยนแปลง||ไป|
เควิน Cruijssen

1
ฉันพบบางสิ่งเพิ่มเติมในการเล่นกอล์ฟ: new JComponentถึง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

Bubblegum, 28 ไบต์

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

ป้อนคำอธิบายรูปภาพที่นี่

ไม่ทำงานออนไลน์เนื่องจากใช้รหัสสี ANSI สำหรับการระบายสี


นี่เป็นการเข้ารหัสแบบตรงหรือว่ามันใช้เคล็ดลับที่ฉลาดอื่น ๆ
Conor 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]$_}

บันทึกสองไบต์ด้วย@flashbang ... บันทึกอีกสองรายการด้วย@ConnorLSW

ใช้เวลา"I Voted"และเปลี่ยนเป็นchar-array แล้ววน|%{...}ซ้ำ ตัวอักษรแต่ละตัวที่เราดำเนินการWrite-Hostกับ-bสี ackground ไปWhite, -noNewLine และ-fสี oreground จะเป็นดัชนีที่เหมาะสม สิ่งนี้ใช้ประโยชน์จากความจริงที่ว่าค่า ASCII แปลก ๆ คือสีแดงในขณะที่ค่า ASCII จะเป็นสีน้ำเงินผ่านทาง$_%2ดัชนี

สีของคอนโซลใน PowerShell มีจำกัดมากดังนั้นนี่คือการประมาณที่ใกล้เคียงที่สุดที่ฉันสามารถทำได้ มันจะเป็นนักกอล์ฟที่ใช้4( DarkRed) กับสีแดง แต่มันดูไม่ถูกต้องดังนั้นฉันจึงต้องเสียสละสักสองสามไบต์เพื่อความถูกต้องของสี

ด้านล่างเป็นผลลัพธ์ตามด้วยสีที่มีให้เลือก 16 สีที่คอนโซลสามารถแสดงได้ โปรดทราบว่าพื้นหลังไม่ได้เป็นสีขาวอย่างแท้จริงเนื่องจาก Microsoft ในภูมิปัญญาของพวกเขาเลือกที่จะมีสีพื้นหลังที่เคยออกมาเล็กน้อยจากสีพื้นหน้า

คอนโซลเอาต์พุต


IIRC ในวัตถุโบราณคุณมี 4 บิตสำหรับพื้นหน้าและ 3 บิตสำหรับพื้นหลังดังนั้นพื้นหลังอาจเป็นสีเข้ม '0-7 เท่านั้น คอนโซลยังคงติดตามสิ่งนั้นอยู่หรือไม่?

@Hurkyl Kinda ดูเหมือนว่าจะเป็นไปตามจานสี EGAแต่ฉันไม่แน่ใจว่าเหตุผลทางประวัติศาสตร์สำหรับ PowerShell ยังคงรักษารูปแบบดังกล่าว มีแนวโน้มว่ามีบางสิ่งฝังอยู่ใน Win32 API ที่เข้ากันได้แบบย้อนหลังซึ่งบังคับให้พวกเขาใช้สีเหล่านั้นเพียง 16 สีเท่านั้น
AdmBorkBork

มันไม่ทำงานถ้าคุณตั้งค่าสีพื้นหลังเป็น 15?
Random832

@ Random832 มันเป็นเพราะพื้นหลังสีขาวของสติกเกอร์
geisterfurz007

@ geisterfurz007, TimmyD ฉันถามว่าคุณสามารถตั้งค่าพื้นหลังเป็น "15" มากกว่า "white" [เนื่องจากพื้นหลังจริงในภาพของคุณดูเหมือนจะเป็น # 7] เพื่อให้ได้สีขาวที่สว่างกว่า แต่เมื่อมองดูเพิ่มเติมจอแสดงผลทั้งหมดของคุณดูแปลก - ขอบระหว่างบรรทัดในตัวอย่างของคุณและเส้นสีเทาระหว่าง "I" และพื้นที่ต่อไปนี้ไม่สมเหตุสมผลหาก PowerShell กำลังทำงานอยู่ในคอนโซล - คุณกำลังใช้งานหรือไม่ เครื่องมืออื่น ๆ เช่น ConEmu? ถ้าเป็นเช่นนั้นมันไม่สมควรที่จะตำหนิ Microsoft ในเรื่องนี้
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
Kade

3
ต้องการเพิ่มรูปภาพหรือไม่
งานอดิเรกของ Calvin

9
คุณสามารถบันทึก 5 ไบต์โดยการเปลี่ยนไป'blue' if c else 'red' '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

Jolf, 53 ไบต์

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

มี unprintables ลองที่นี่!

เอาต์พุตของ Jolf สามารถใช้ HTML ได้ ฉันพยายามทำสิ่งที่ฉลาดเช่นโมดูลัส 2 เพื่อตัดสินใจเลือกสี ดังนั้นผลลัพธ์จะเป็น HTML

เอาท์พุท:

ปกติ "ฉันโหวต"

(รุ่นใหญ่กว่า)

ใหญ่ "ฉันโหวต"


8
นี่เป็นสิ่งที่แย่มากที่คุณบันทึกไว้เพียงสามไบต์ใน HTML: P
ASCII-only

@EriktheGolfer ใช้งานได้กับ firefox เท่านั้น
Conor O'Brien

@ ConorO'Brien โอ้ฉันใช้ Chrome ขอบคุณ
Erik the Outgolfer

1
... และคำตอบของ HTML ก็ดีกว่านี้
betseg

ไม่สามารถblueจะเขียนเป็น00f?
Ismael Miguel


8

sh, 61 49 ไบต์

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

เนื่องจากสิ่งนี้มี unprintables นี่คือ 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)

ขอบคุณ 4198 (manatwork) สำหรับ -12 ไบต์


ทำไมการตั้งค่าพื้นหลังและสีพื้นหน้าแยกกัน? [47;31;1mเริ่มต้นด้วย และ1สำหรับตัวหนายังคงอยู่จนกว่าจะมี0ดังนั้นไม่จำเป็นต้องตั้งค่าอีกครั้งสำหรับจดหมายแต่ละฉบับ
จัดการ

@ การทำงานโอ้พระเจ้าฉันคิดว่าคุณต้องตั้งใหม่!
Erik the Outgolfer

ถ้าเกิดว่าเป็นอะไรที่ทันสมัยมากขึ้นกว่าบอร์นเชลล์เก่าบางการขยายตัวพารามิเตอร์อาจช่วยsh s=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}
จัดการ

@ การจัดการมันไม่ทำงาน ดูเหมือนว่าจะไม่ทันสมัยกว่านี้
Erik the Outgolfer

@ manatwork ${VAR/FROM/TO}ต้องการ ksh93 ทุบตีหรือ zsh ไม่ใช่แค่ "อะไรที่ทันสมัยกว่าบอร์นเชลล์เก่า" POSIX ต้องการตัวดัดแปลงส่วนขยาย#และ%พารามิเตอร์ แต่ไม่ใช่/…/หรือ:…:
Gilles

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ไม่ใช่ภาษาโปรแกรม
Peter Taylor

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));}

ใช้เทคนิคทุบตีสีเดียวกับที่ beteg ใช้ แต่ด้วยลำดับเลขฐานแปดหนีแทนที่จะเป็นเลขฐานสิบหกและด้วยการสังเกตของ Sp3000 ว่า codepoints คี่ทั้งหมดเป็นสีแดง

ปล่อยให้เทอร์มินัลเป็นสีน้ำเงิน รีเซ็ตด้วย:

printf "\33[0m";

หาก||ทำงานใน C เช่นเดียวกับใน JavaScript ( x||y -> x?x:y) คุณสามารถทำได้c&1||4เพื่อบันทึกไบต์
ETHproductions

1
@ETHproductions ใช้งานไม่ได้ใน C ขณะที่||และ&& กำลังลัดวงจรพวกมันจะคืนค่า 1 หรือ 0 เสมอโดยไม่คำนึงถึงค่าที่เกี่ยวข้อง
เดฟ

@Dave ฉันได้เรียนรู้บางสิ่งบางอย่างในวันนี้ ...
แมว

สิ่งนี้ไม่ได้ตั้งค่าสีพื้นหลัง นอกจากนี้คุณสามารถใช้ตัวอักษร\33ยกเว้นตัวอักษรเพื่อบันทึกสองไบต์หากไม่ขัดกับกฎอย่างใด

@yellowantphil สิ่งนี้ถือว่าพื้นหลังเทอร์มินัลเริ่มต้นถูกตั้งค่าเป็นสีขาว (เนื่องจากความท้าทายบอกว่ามันต้องเป็นไปได้ที่จะมีมันบนพื้นหลังสีขาว) ในความเป็นจริงใน OS X เทอร์มินัลนั้นมีสีขาว - ดำนอกกล่อง
เดฟ

8

โหนด, 57 55 41 ไบต์

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

แทนที่แต่ละตัวqด้วยไบต์ตัวอักษร1BและHด้วยไบต์08ก่อนเรียกใช้

นี่คือลักษณะที่ปรากฏในเทอร์มินัลตัวจำลอง ConEmu บนคอมพิวเตอร์ Windows ของฉัน (ซูมเข้า):

ป้อนคำอธิบายรูปภาพที่นี่


เทอร์มินัลอีมูเลเตอร์คืออะไร!?
แมว


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

REBOL , 100 90 95 ไบต์ (-7 ไบต์กับ REPL สำหรับ 88)

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**240xFFFFFFดูเหมือนว่าจะทำงานแทน ไม่แน่ใจว่าสิ่งนี้ถูกต้องสำหรับสถาปัตยกรรมทั้งหมดหรือไม่ ถ้าไม่2**24-1ควรพกพา
จัดการ

@Manatwork ขอบคุณที่ยอดเยี่ยม มันลดลงเหลือ 152 ฉันลอง~2**24แล้ว2**24-1แต่ฉันมีข้อผิดพลาด ฉันไม่รู้ด้วยซ้ำว่าทำงานอย่างไร
Kodos Johnson

น่าจะเป็นของคุณ PHP เก่ากว่า 5.6.0:“เพิ่มผู้ประกอบการยกกำลัง (**).” - PHP การเปลี่ยนแปลง เช่นเดียวกับpow()แต่ใช้งานง่ายกว่าสำหรับการเล่นกอล์ฟ pastebin.com/jFn6ahFk
จัดการ

อ้อเข้าใจแล้ว. เนื่องจาก php 5.5 ดูเหมือนว่าจะไม่ได้รับการสนับสนุนฉันจะใช้โซลูชันของคุณ ตอนนี้เป็น 150 ขอขอบคุณอีกครั้ง
Kodos Johnson

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.Endจำเป็นสำหรับ iOS มิฉะนั้นข้อความจะถูกซ้อนทับโดยแถบสถานะ ไม่มีปัญหาบน Android ดังนั้นสามารถบันทึก 34 ไบต์รวมถึงเครื่องหมายจุลภาค

แก้ไข: 2016-11-14: -4 ไบต์

Ungolfed

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
Addison Crump

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ดังนั้นตัวเลขทั้งหมดจึงเป็นเลขฐานสิบหก):

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

มันใช้ประจำ BIOSเพื่อส่งออกสตริงไปยังหน่วยความจำจอแสดงผล สตริงจะปรากฏที่ตำแหน่ง "สุ่ม" บนหน้าจอ (ดูด้านล่าง) เช่นนี้:

ภาพหน้าจอ

สตริงมีตัวอักษรI V o t e dสอดแทรกด้วย "attribute"

74 74 71 74 71 74 71

ที่ระบุสีของตัวอักษร ที่นี่ 7 เป็นตัวเลขที่สำคัญที่สุดหมายถึง "พื้นหลังสีขาว" และตัวเลขที่มีนัยสำคัญน้อยที่สุดจะระบุเบื้องหน้า (1 = สีน้ำเงิน; 4 = สีแดง)

ตำแหน่งการแสดงของสตริงถูกระบุโดยdxรีจิสเตอร์ ดังที่กล่าวไว้ที่นี่ค่าเริ่มต้นของการลงทะเบียนนี้เท่ากับมูลค่าของการcsลงทะเบียน และค่าของอันนั้นคือที่อยู่แรกที่มีอยู่ในหน่วยความจำหลังจากโหลด DOS

ขนาดของ DOS โดยปกติจะน้อยกว่า 64K, ที่อยู่, 1000ที่อยู่ส่วนของโปรแกรมที่ใช้โหลดของมีค่าน้อยกว่าเลขฐานสิบหก ดังนั้นผลลัพธ์จะปรากฏขึ้นรอบ ๆ ข้อความ 16 บรรทัดแรกบนหน้าจอ ในตัวอย่างของฉันมันปรากฏที่บรรทัดที่ 8 (ครึ่งบนของdxเรียกว่าdhมีค่าเท่ากับ 8)

ครึ่งต่ำของที่dxเรียกว่าdlมีคอลัมน์ที่ข้อความจะถูกส่งออก การทดลองแสดงให้เห็นว่า BIOS ไม่ตรวจสอบโอเวอร์โฟลว์ดังนั้นจึงไม่สำคัญว่าdxจะขอผลลัพธ์ที่คอลัมน์เช่น 100 หรือไม่


ฉลาดสั้นและใช้งานง่ายจริงๆ
tuskiomi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.