ĐI RA VÀ BẦU


114

Hôm nay là ngày 8 tháng 11 năm 2016, Ngày bầu cử ở Hoa Kỳ.

Nếu bạn là công dân Hoa Kỳ đủ điều kiện để bỏ phiếu, thì hãy ra ngoài và bỏ phiếu nếu bạn chưa có trước khi trả lời thử thách này. Không thảo luận về những người bạn đã bỏ phiếu cho. Nó chỉ là vấn đề mà bạn đã bỏ phiếu.

Nếu bạn không phải là công dân Hoa Kỳ hoặc không đủ điều kiện để bỏ phiếu, thì trước khi trả lời thách thức này, hãy ủng hộ Hoa Kỳ bằng cách nói cho bất cứ ai bạn biết ai là công dân đủ điều kiện ra ngoài và bỏ phiếu nếu họ chưa có.

Thử thách

Viết chương trình cho biết bạn đã bình chọn, như nhãn dán "Tôi đã bỏ phiếu" kỹ thuật số .

Nó nên không có đầu vào và đầu ra phải một cách hợp lý các cụm từ I Votednơi I, oecó màu đỏ ( #FF0000) và V, tdlà màu xanh ( #0000FF). Nền phải là màu trắng ( #FFFFFF).

Ví dụ:

Đồ họa ví dụ "Tôi đã bỏ phiếu"

Những màu này tất nhiên là đại diện cho quốc kỳ Mỹ (mặc dù không phải là màu chính thức ). Màu đỏ đến trước đơn giản vì nó đứng đầu trong thành ngữ phổ biến "đỏ trắng và xanh".

Để hợp lệ, một câu trả lời phải:

  • Sử dụng các màu được chỉ định trong sắp xếp được chỉ định.

  • Sử dụng một phông chữ dễ đọc và kích thước phông chữ. Ví dụ sử dụng đậm 72pt Times New Roman nhưng bất kỳ phông chữ phổ biến nào trên 6pt có lẽ đều ổn.

  • Chỉ có cụm từ I Votedtrên một dòng duy nhất , viết hoa chính xác, với một khoảng trắng rõ ràng giữa hai từ. Nó không giống như thế IVoted.

  • Không cho biết ai là người trả lời đã bỏ phiếu hoặc ủng hộ cho tổng thống hoặc bất kỳ cuộc đua bỏ phiếu nào. Chúng ta đừng bắt đầu bất kỳ cuộc tranh luận trên internet. Đây là về lễ kỷ niệm bỏ phiếu, không phải ứng cử viên.

Bất kỳ cách hợp lý nào để hiển thị hoặc sản xuất đầu ra đều hợp lệ, chẳng hạn như:

  • Vẽ văn bản thành hình ảnh sau đó được hiển thị, lưu hoặc xuất thô.

  • Viết văn bản vào bàn điều khiển bằng định dạng màu . Trong trường hợp này, bạn có thể xấp xỉ màu đỏ và xanh thuần nếu cần thiết, và sẽ ổn nếu chỉ khu vực phía sau văn bản có thể được tạo thành màu trắng.

  • Hiển thị văn bản trên biểu mẫu WPF / Windows.

  • Xuất ra tệp HTML / RTF / PDF với văn bản.

Xin vui lòng gửi một hình ảnh của đầu ra của bạn.

Câu trả lời ngắn nhất trong byte thắng.


29
Một chút thất vọng nhãn dán thực tế của tôi không giống như của bạn.
Geobits

39
"Nó chỉ là vấn đề mà bạn đã bỏ phiếu." - @HelkaHomba ... Điều đó giống như nói "không quan trọng bạn viết mã gì, miễn là bạn đã viết một số mã." : /
Michael Yaeger

41
@MichaelYaeger Vâng, viết một số mã tốt hơn là không viết. Bỏ phiếu tốt hơn là không bỏ phiếu. Có thể mọi người sẽ đặt một số suy nghĩ vào mã hóa và bỏ phiếu nếu họ chọn làm điều đó. Nhưng thực sự tôi đã nói rằng để giúp tránh những cuộc tranh luận giận dữ.
Sở thích của Calvin

43
Nếu nó giúp bất cứ ai, nguyên âm có màu đỏ, phụ âm có màu xanh.
mbomb007

34
@ mbomb007 Hoặc hữu ích hơn, các chữ cái có điểm mã lẻ có màu đỏ và các chữ cái có điểm mã chẵn là màu xanh.
Sp3000

Câu trả lời:


116

Trò chuyện Minecraft (máy khách vanilla 1.10, máy chủ spigot 1.10): 19 byte

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

hoặc từ phía khách hàng:

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

Minecraft sử dụng hệ thống mã màu với các màu này được lập trình.

nhập mô tả hình ảnh ở đây

Lưu ý các quy tắc:

  • Viết văn bản vào bàn điều khiển bằng định dạng màu. Trong trường hợp này, bạn có thể xấp xỉ màu đỏ và xanh thuần nếu cần thiết, và sẽ ổn nếu chỉ khu vực phía sau văn bản có thể được tạo thành màu trắng.

Tất cả những điều này đều đúng, như:
các xấp xỉ IS màu đỏ và màu xanh (mặc dù vẫn rất giống nhau).
Nền trong trò chuyện Minecraft là trong suốt, có nghĩa là có thể đặt nền này trên nền trắng. (chẳng hạn như một thế giới trống rỗng)


10
Ồ Tôi không nói nên lời. Đó là một câu trả lời rất thông minh!
DJMcMayhem

28
Tôi không nghĩ Minecraft Chat là Turing-Complete hoặc được coi là ngôn ngữ lập trình (mặc dù điều này có thể không còn là một yêu cầu nữa). Mặc dù rất sáng tạo! :)
Kade

9
@Shebang playing.stackexchange.com/questions/20219/ Trò chuyện Minecraft có (gần như) tất cả các lệnh giống như các khối lệnh và chắc chắn tất cả các lệnh từ phía sau khi câu hỏi được hỏi :-)
tuskiomi

15
Về mặt kỹ thuật, trong vanilla Minecraft, &s nên là §s
Oliver Ni

2
Hmmm Tôi nghĩ rằng nó cũng có thể được thực hiện trong Quake 3
Sarge Borsch

107

C, 82 80 78 74 54 byte

Cảm ơn @WillihamTotland và @criptych vì đã lưu 2 byte mỗi cái!

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

Trong đó s đại diện cho 0x1B byte (khóa thoát). Vì mã này chứa các ký tự điều khiển không thể in được, đây là một hexdump có thể đảo ngược:

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

Đầu ra trên điện thoại của tôi:


3
@KritixiLithos dòng đó xác định a"\x1B[%dm", đó là một chuỗi thoát ANSI để tô màu, với một trình giữ chỗ. Những con số printf()điền vào những chỗ dành sẵn.
betseg

1
Hai byte có thể được loại bỏ bằng cách thay thế a bằng "\x1B[47;31m"và xác định b thành "\x1B[34m", sau đó sử dụng putsxen kẽ abtiền tố.
Williham Totland

3
Bạn có thể lưu thêm 2 byte bằng "\ 33" thay vì "\ x1B".
criptych

1
Mở rộng những gì criptych đã nói, tôi không biết điều này có được phép hay không, nhưng bạn sẽ tiết kiệm thêm bốn byte bằng cách sử dụng ký tự thoát theo nghĩa đen thay vì \33. Không chắc chắn về tiêu chuẩn C nghĩ gì về điều đó ...

3
@paxdiablo theo chủ đề meta này , các chức năng đều ổn đối với mã golf.
betseg

73

Google Blockly , 10 14 khối, 28 41 35 blyte

nhập mô tả hình ảnh ở đây

Đầu ra

nhập mô tả hình ảnh ở đây

Hãy thử nó ở đây

Không tính hide turtlekhối vì nó chỉ là thẩm mỹ.

Blyte là sự kết hợp của một khối và một byte, chưa có bài đăng meta nào về cách tính số này, nhưng tôi sẽ tạo một cái sau. Hiện tại, đây là cách tôi đếm:

  • I o e, 8 blyte
  • V t d, 10 blyte (2 không gian hàng đầu ở đây)
  • Màu sắc, mỗi loại 1 blyte, tổng cộng 2
  • 90, 2 blyte
  • 999, 3 blyte
  • 0, 1 blyte
  • rẽ phải, 2 blyte
  • tiến về phía trước, 2 blyte
  • khối bình thường, mỗi khối 1 blyte, tổng cộng 5

Vì Google Blockly hiếm khi được sử dụng để chơi gôn và tôi nghĩ rằng waaay bên ngoài hộp cho thử thách này, tôi hy vọng đây là một bài nộp hợp lệ.


20
Đối với hồ sơ này là hợp lệ. Thật tuyệt khi thấy các ngôn ngữ độc đáo. Mặc dù, trừ khi có sự đồng thuận meta về đếm byte trong Google Blockly, tôi có thể bỏ qua nó khi chọn người chiến thắng.
Sở thích của Calvin

2
Bạn có thể tìm thấy cuộc thảo luận ở đây có liên quan. CC @HelkaHomba.
Scimonster

Bạn đã từng thay thế ba không gian đó I obằng hai không gian em chưa?
Andrea Lazzarotto

Google Blockly sẽ được dịch sang JavaScript và sau đó chạy. Bạn cần Inspect Elementvà chạy mã trong API Blockly để có được mã JavaScript thực.

1
Đợi để Scratch có thể được sử dụng?
Adamawgie4

47

HTML, 52 byte

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

2
Ngoài ra, tôi nghĩ rằng #FF0000-> #F00#0000FF-> #00Fhoạt động
Conor O'Brien

46
Tại sao không biến điều này thành một Snippet Stack?
Neil

3
<r>I <c>V<r>o<c>t<r>e<c>d<style>r{color:red}c{color:bluehoạt động
ASCII - chỉ

7
thực tế bạn chỉ có thể tiếp tục lồng mà không đóng I <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ffvà thay đổi ghi chú thành màu xanh0ff

2
Đáng buồn thay, phiên bản hiện tại dường như không hoạt động như một Snippet Stack, phiên bản mới nhất phù hợp với tôi là c{color:blue}phiên bản.
Neil

39

LaTeX, 147 126 byte

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

Đã lưu 21 byte và nhận được nhiều thông tin tốt hơn nhờ @ AndreïKostyrka.

Điều này in một trang a4 với điều này trên dòng đầu tiên (lưu ý rằng điều này cũng in trang 1 ở dưới cùng):

nhập mô tả hình ảnh ở đây


13
Tôi đã có thể nghĩ LaTeX sẽ sắp Vochữ đẹp hơn ... Nhưng rõ ràng nó xem xét từng chữ cái riêng biệt do màu sắc.
Chiếm 8/11/2016

@sanchises Vì mỗi chữ cái nằm trong một lệnh riêng biệt, tôi nghĩ rằng nó sẽ phá hủy sự khôn ngoan đúng đắn.
Gây tử vong

Vâng chính xác. Mặc dù tôi chắc chắn rằng bằng cách nào đó, chơi golf không phải là một yêu cầu.
Chiếm 8/11/2016

@sanchises điều này là chắc chắn có thể , nhưng điều này thực sự dài hơn giải pháp xấu xí này.
Gây tử vong

\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}lưu 21 byte và kết quả là 126 byte vẻ đẹp kiểu chữ thuần túy.
Andreï Kostyrka

34

Batch Windows 10, 51 50 byte

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

Trong đó ␛ đại diện cho ký tự ANSI Escape 0x1B. Đầu ra sử dụng định dạng màu. Chỉnh sửa: Đã lưu 1 byte nhờ @ brianush1. Tôi đã thử viết mã để tạo ra cái này nhưng phải mất 97 byte. Đầu ra:

Tôi đã bình chọn


1
Bạn có thể đánh golf xuống 1 byte nếu bạn sử dụng @color fc&echo I...
brianush1

1
Thật thú vị, tôi đã không nhận ra thiết bị đầu cuối Windows hỗ trợ các chuỗi thoát ANSI
Mark K Cowan

3
@MarkKCowan Chỉ có Windows 10 và (tôi nghĩ vậy!) Đăng Redstone Update. Đó là một trong số ít những thứ ngăn tôi cài đặt XP qua nó.
wizzwizz4

@ wizzwizz4 ConEmu cũng hỗ trợ những thứ này :) Quả thực đây là từ kỷ niệm Windows 10 (tức là đá đỏ 1)
Asu

@Asu Tôi đã cài đặt XP qua nó.
wizzwizz4

28

JavaScript, 71 byte

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

Làm cho việc sử dụng console.logkhả năng in màu. Không hoạt động trong một đoạn mã ngăn xếp, vì vậy bạn nên dán câu trả lời này vào bảng điều khiển để kiểm tra nó.

nhập mô tả hình ảnh ở đây

Tín dụng hình ảnh cho @Mast


Đó chính xác là những gì tôi vừa nghĩ ra, haha. Tôi nghĩ giải pháp thay thế ngắn nhất sẽ làconsole.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
ETHproductions 8/11/2016

Không hoạt động trong Node.js. :(
Jordan

Tôi đã ngạc nhiên khi điều này thực sự hoạt động, nhưng nó .
Mast

23

R, 113 85 81 74 73 55 byte

Chỉnh sửa: Đã lưu một loạt byte nhờ @rturnbull và @JDL

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

Kích thước của đầu ra (và khoảng cách, v.v.) phụ thuộc vào độ phân giải của thiết bị đồ họa hiện đang mở. Đã thử nghiệm trong RGui và RStudio trên màn hình của tôi và tạo ra:

nhập mô tả hình ảnh ở đây


4
Ồ, tôi chưa từng thấy el()trước đây. Cảm ơn đã giúp tôi tìm hiểu thêm R! Vì textđược vector hóa, bạn có thể bỏ qua vòng lặp for và chỉ cần viết : text(seq(.3,.6,.05),.5,s,col=c("red","blue")). (Tôi đã sửa đổi vị trí x của bạn cho mã golfier, mặc dù khoảng cách có thể kém hơn một chút.)
rturnbull

1
Ngoài ra, nhờ kết hợp đối số một phần, bạn có thể sử dụng co=chứ không phải col=. Và cuối cùng, 6:12*.05ngắn hơn vài byte seq(.3,.6,.05).
rturnbull

1
Nắm bắt tốt! Và bây giờ tôi nhận ra rằng 6:12/20tất nhiên là ngắn hơn 1 byte so với 6:12*.05lời xin lỗi vì đã dẫn bạn lạc lối và đề xuất các chỉnh sửa dưới mức tối ưu.
rturnbull

1
Không phải là màu sắc tắt? Không phải chữ "I" và "V" có màu khác nhau sao?
JDL

2
Tôi khá chắc chắn el()cải thiện 99% tất cả các strsplitcâu trả lời trước đó thêm 1 byte.
Vlo

21

LVE , 152 142 136 byte

Chúng ta hãy hiển thị một số ngôn ngữ cho một ngôn ngữ tạo mẫu nhỏ thú vị! Nó không hoàn hảo cho nhiệm vụ chơi gôn (c'mon, nó dựa trên LUA), nhưng nó rất dễ viết.

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

Ảnh chụp màn hình:

ảnh chụp màn hình


Phiên bản hoàn toàn vô căn cứ:

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
Tôi cho rằng bạn đã sử dụng một cái gì đó khác ngoài Java.
admBorkBork

5
Vì vậy, nhiều 255 255 Một biến cho họ?
manatwork

1
@ ConorO'Brien Đây là một chương trình đầy đủ. love.draw()là một hàm tích hợp mà bạn ghi đè, chạy trên bước vẽ. Cũng có những thứ như love.update()love.load()cho các phần khác nhau của vòng lặp kết xuất, nhưng chúng là tùy chọn. Đó là một ngôn ngữ hay và bạn có thể bắt đầu với nó rất dễ dàng . Đôi khi tôi sử dụng nó để nguyên mẫu trò chơi ý tưởng.
Geobits

2
@cat Họ chỉ không. Nó không giống như tôi in đè chúng trên bàn điều khiển, nó là một bản in đồ họa. Vì vậy, một không gian ở đây chỉ là "sơn không có gì trong khu vực này", chứ không phải "sơn nền khu vực này màu".
Geobits

2
@ ZoltánSchmidt Cảm ơn! Có một vài câu trả lời LVE khác , nếu bạn muốn xem qua chúng: D
Geobits

18

Bộ xử lý súp nóng , 48 byte

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

Phiên bản không có bản quyền là:

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

Nếu bạn nhớ rằng mes(tin nhắn) là của HSP echo, tôi nghĩ rằng điều này khá dễ đọc.

Thật kỳ lạ, nếu bạn cố gắng thực hiện poshoặc pos,, dòng màu xanh không ghi đè lên dòng màu đỏ và xuất hiện bên dưới nó. Thậm chí kỳ lạ hơn, colorchỉ có nghĩa là đưa các giá trị vào 0-255, nhưng 0,0,-1hoạt động cho màu xanh lam, 0,-1,0hoạt động cho màu xanh lá cây và -1,0,0hoạt động cho ... màu đen? ( -257,0,0511,0,0hoạt động với màu đỏ, vì vậy có gì đó thú vị về mod 256 đang diễn ra)

nhập mô tả hình ảnh ở đây


Tại sao không gian trong phần thứ hai mesghi đè lên phần thứ nhất?
con mèo

@cat Spaces không thực sự vẽ bất cứ thứ gì, nó chỉ tiến lên vị trí con trỏ theo một nghĩa nào đó
Sp3000

1
Khéo
léo

@Cyoce Hoặc có thể đó thực sự là -255?
sagiksp

18

MATLAB, 74 byte

Chúng tôi tạo nền 50x50 (một cột cho mỗi trạng thái) màu trắng bằng cách sử dụng imshowmột mảng ones. Sau đó chúng tôi hiển thị một văn bản, sử dụng thủ thuật rút ngắn tên thuộc tính của tôi để lấy màu. Vì phông chữ mặc định không phải là chiều rộng cố định, văn bản được đệm bằng khoảng trắng.

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

nhập mô tả hình ảnh ở đây

MATLAB, 99 byte, phông chữ có chiều rộng cố định

Phiên bản đầu tiên sử dụng không gian và tọa độ để có được độ sáng phù hợp trên phông chữ mặc định và có thể không hiển thị đúng trên máy tính của bạn. Thay vào đó, chúng ta có thể sử dụng phông chữ có chiều rộng cố định, như Courier(hoặc, đối với một số byte hơn, FixedWidthhoạt động trên bất kỳ hệ thống nào có cài đặt phông chữ có chiều rộng cố định). Điều này không phải trả giá bằng khá nhiều byte. Chúng ta có thể giảm thiểu điều này một chút bằng cách sử dụng một forvòng lặp để in văn bản. Văn bản và màu tương ứng được lưu trữ trong một mảng ô. Nền cần phải lớn hơn một chút.

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

nhập mô tả hình ảnh ở đây

Matlab, phiên bản thưởng 80 byte

Đáng buồn thay, văn bản màu xanh gạch chân không được phép. Nếu không, câu trả lời này sẽ làm nổi bật một số hành vi thú vị trong MATLAB. Bạn có thể in văn bản màu đỏ bằng cách sử dụng fprintf(2,txt)và bạn có thể in văn bản có gạch chân màu xanh với fprintf('<a href="">txt</a>'). Kết hợp công việc này ... đôi khi. Hoàn toàn ngẫu nhiên , nó cũng có thể tạo ra văn bản gạch chân màu đỏ. Bạn có thể phát hành drawnowgiữa fcác cuộc gọi liên tiếp nếu đây là trường hợp trên hệ thống của bạn.

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

nhập mô tả hình ảnh ở đây


Bạn có thể viết <a href>thay vì <a href="">. Nếu bạn không thích nó, bạn có thể sử dụng <a href=#>.
Ismael Miguel

@IsmaelMiguel Thông minh. <a>đã không làm việc.
Chiếm

Chỉ sử dụng <a>không được coi là một liên kết có thể nhấp. để có được màu xanh lam, nó phải được coi là một. Trong CSS, bộ chọn có thể là a[href]. Miễn là thuộc tính hrefở đó, nó là một liên kết có thể nhấp. Đó là lý do tại sao chỉ sử dụng <a>sẽ không hoạt động.
Ismael Miguel

18

ImageMagick, 102 byte

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

Ung dung:

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

nhập mô tả hình ảnh ở đây

Chơi golf lệnh ImageMagick đầy đủ bao gồm

  • không gọi mặc định convert tiện ích

  • sử dụng xc:thay vì canvas:( xc:là một từ đồng nghĩa cũ chocanvas: ; Tôi không thấy ImageMagick đã từng loại bỏ nó)

  • không chỉ định màu canvas mà dựa vào mặc định của ImageMagick, màu trắng

  • loại bỏ chiều rộng 60 khỏi hình học (khi nó bị bỏ qua, width == height)

  • di chuyển cái "!" từ hình học chỉ cần để tạo ra một hình vẽ không vuông, nhưcanvas:white[60x30!]

  • sử dụng tệp cũ x:thay vì show:tệp đầu ra (giả sử ImageMagick được xây dựng vớiX sự hỗ trợ)

  • xóa một số khoảng trắng mà tôi đã sử dụng để sắp xếp các chuỗi văn bản

  • nối nhiều dòng lệnh (loại bỏ dấu gạch chéo ngược-CR giữa các dòng)

Nếu bạn rất có khuynh hướng sau cuộc bầu cử, hãy thêm 12 byte -rotate 180trước lệnh show::

nhập mô tả hình ảnh ở đây


4
Tôi thích cách phiên bản không có người khác biệt mạnh mẽ so với phiên bản golf.
Andreï Kostyrka

15

Bash, 35 byte

Kịch bản của tôi trông như thế này

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

xxd của tập tin kịch bản:

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

Gõ nó: ctrl-v-esc và ctrl-vh sẽ chèn các lối thoát và khoảng trống (^ [và ^ H).

nhập mô tả hình ảnh ở đây


Cái này hoạt động ra sao? Một lời giải thích sẽ là siêu
mèo

2
@cat nó xuất hiện để viết tất cả các chữ cái màu đỏ (với "h" và "p" là độc lập), sau đó đặt màu thành màu xanh và viết "d" ở cuối. Cuối cùng, nó di chuyển con trỏ sang trái để thêm "t" và "V" so với các stand-in trước đó (ascii 0x08, được biểu thị bằng "^ H" trong màn hình ở trên, di chuyển sang trái 1 ký tự). Cách thông minh để tránh nhiều chuỗi thoát cho sự thay đổi màu sắc. Nó cũng sử dụng một ký tự thoát theo nghĩa đen (0x1B, được biểu thị là "^ [") để tiết kiệm một số không gian so với các câu trả lời tương tự như của tôi.
Dave

Ngoài ra: có thể lưu 3 byte bằng cách giả sử thiết bị đầu cuối được đặt thành nền trắng theo mặc định (hầu hết các câu trả lời khác của thiết bị đầu cuối đã giả định điều này).
Dave

Bạn có thể lưu một byte bằng cách xóa hai dấu ngoặc kép và thêm dấu gạch chéo ngược (ký tự thoát) trước dấu chấm phẩy. Ngoài ra tập lệnh của bạn có chữ thường v (dòng lệnh của bạn là tốt).


14

Java, 322 319 318 309 304 229 217 byte

-9 Byte nhờ kevin.
-75 Byte nhờ Angzuril, chú thích tốt đẹp về các lớp awt cũ, luôn quên những thứ tồn tại.
-12 Byte nhờ người dùng902383.

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

Đầu ra:

nhập mô tả hình ảnh ở đây


1
JFrame j=có thể được đánh golf để Frame j=; (c==' '||i++%2==0)?có thể được chơi golf c<33|i++%2<1?truecó thể được chơi golf 1>0. Ngoài ra, @HelkaHomba, đây có phải là đầu ra hợp lệ không? Vì nó cũng có khoảng cách giữa V o t e d? Ồ, và tại sao 0,0,999,99? 0,0,99,99là đủ lớn cho văn bản trên màn hình của tôi.
Kevin Cruijssen

1
(c<33||i++%2<1)?Stil có thể được đánh gôn bằng ba byte bằng cách xóa dấu ngoặc đơn và đổi ||thành|
Kevin Cruijssen

1
Tôi tìm thấy một số thứ nữa để chơi gôn: new JComponentto new Container(-1); loại bỏ char c="IVoted".charAt(i);và thay đổi g.drawString(c+""thànhg.drawString("IVoted".charAt(i)+"" (-8).
Kevin Cruijssen

1
Cải thiện đầu tiên, thay đổi Frame j=new JFrame();j.add(new JComponent()thành Frame j=new Frame();j.add(new Container()và bạn cũng có thể bỏ nhập import javax.swing.*;g.setColor(Color.WHITE);g.fillRect(0,0,99,99)kết quả là (-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);}};}cho phép bạn giảm 12 byte
user902383

13

Bong bóng, 28 byte

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

nhập mô tả hình ảnh ở đây

Không hoạt động trực tuyến vì nó sử dụng mã màu ANSI để tô màu.


Đây có phải là một mã hóa thẳng, hay nó sử dụng một số mẹo thông minh khác?
Conor O'Brien

2
@ ConorO'Brien Không có thứ gọi là thủ thuật thông minh trong Bubblegum. Thành thật mà nói, câu trả lời này chủ yếu là tác dụng phụ của câu trả lời thực tế mà tôi đang làm việc.
một spaghetto

13

PowerShell v2 +, 71 59 57 55 byte

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

Đã lưu hai byte nhờ @flashbang ... đã lưu thêm @ConnorLSW

Đưa "I Voted"và biến nó thành một char-array, sau đó lặp lại |%{...}. Mỗi chữ cái, chúng tôi thực hiện Write-Hostvới -bmàu ackground đến White, -noNewLine và-f màu oreground là chỉ số thích hợp . Điều này thúc đẩy thực tế là các giá trị ASCII lẻ có màu Đỏ, trong khi ngay cả các giá trị ASCII cũng có màu xanh thông qua$_%2 làm chỉ mục.

Màu sắc bảng điều khiển trong PowerShell rất hạn chế, vì vậy đây là xấp xỉ gần nhất tôi có thể nhận được. Nó sẽ là golfier để sử dụng 4(DarkRed ) cho màu đỏ, nhưng nó có vẻ không ổn, vì vậy tôi đang hy sinh một vài byte vì độ chính xác của màu.

Dưới đây là đầu ra, theo sau là 16 màu có sẵn mà bảng điều khiển có thể hiển thị. Lưu ý rằng nền không thực sự trắng, vì Microsoft trong sự khôn ngoan của họ đã chọn để có các màu nền hơi quá so với các màu nền trước.

Bảng điều khiển đầu ra


IIRC, trong các công cụ cổ xưa, bạn có 4 bit cho nền trước và 3 bit cho nền, vì vậy nền chỉ có thể là các màu 'tối' 0-7. Là giao diện điều khiển vẫn theo sau đó?

@Hurkyl Kinda. Nó dường như được dựa trên bảng màu EGA , nhưng tôi không chắc lý do lịch sử cho việc PowerShell giữ sơ đồ đó. Có khả năng một cái gì đó bị chôn vùi trong khả năng tương thích ngược API Win32 đã buộc chúng chỉ sử dụng 16 màu đó.
admBorkBork

Nó không hoạt động nếu bạn đặt màu nền thành 15?
Random832

@ Random832 nó là vì lợi ích của nền trắng của nhãn dán.
geisterfurz007

@ geisterfurz007, TimmyD, tôi đã hỏi liệu bạn có thể đặt nền thành "15" thay vì "trắng" [vì nền thực tế trong ảnh của bạn dường như là # 7] để có màu trắng sáng hơn. Nhưng khi nhìn vào nó nhiều hơn, toàn bộ màn hình của bạn trông lạ - đường viền giữa các dòng trong ví dụ của bạn và đường màu xám giữa "I" và khoảng trắng sau sẽ không có ý nghĩa nếu PowerShell đang được chạy trong bảng điều khiển - bạn có đang sử dụng không một số công cụ khác như ConEmu? Nếu vậy, không có nghĩa gì để đổ lỗi cho Microsoft về điều này.
Random832

11

Python, 91 byte + termcolor

Sẽ không chiến thắng, nhưng đăng nó cho vui.

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

Một nửa tín dụng là Sp3000.


2
Sử dụng mã ANSI nên ngắn hơn
Thiền vào

@ TùxCräftîñg Nó không được hỗ trợ trên tất cả các nền tảng, tức là Windows.
Kade

3
Tâm trí thêm một hình ảnh?
Sở thích của Calvin

9
Bạn có thể lưu 5 byte bằng cách thay đổi 'blue' if c else 'red'thành 'brleude'[c^1::2].
Kade

2
Có lẽ bạn nên đặt + termcolor trong tiêu đề vì nó không phải là mô-đun chuẩn. Ngoài ra:from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
Sp3000

8

Jolf, 53 byte

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

Có những cái không thể in được. Hãy thử nó ở đây!

Đầu ra của Jolf có khả năng HTML. Tôi đã thử làm một cái gì đó thông minh như mô-đun 2 để quyết định màu sắc, nhưng điều đó chỉ kéo dài hơn (khoảng 69 byte). Vì vậy, đầu ra là trong HTML.

Đầu ra:

"Tôi bỏ phiếu" thường xuyên

(phiên bản lớn hơn)

"Tôi đã bỏ phiếu" lớn


8
Điều này thật tồi tệ khi bạn chỉ lưu ba byte qua HTML: P
ASCII - chỉ

@EriktheGolfer Nó thực sự chỉ hoạt động trong firefox.
Conor O'Brien

@ ConorO'Brien Ồ, tôi sử dụng Chrome. Cảm ơn.
Erik the Outgolfer 8/11/2016

1
... và câu trả lời HTML đã vượt qua điều này.
betseg

Không thể blueđược viết là 00f?
Ismael Miguel


8

sh, 61 49 byte

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

Bởi vì điều này có chứa không thể in được, đây là một hexdump xxd có thể đảo ngược:

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 "
Tôi đã bình chọn
Xterm (322)

Nhờ có 4198 (manatwork) cho -12 byte.


Tại sao thiết lập màu nền và màu nền trước riêng biệt? Bắt đầu với [47;31;1m. Và 1in đậm vẫn tồn tại cho đến khi a 0, vì vậy không cần thiết lập lại nó cho mỗi chữ cái.
manatwork

@manatwork Trời ơi, tôi nghĩ bạn phải đặt lại rồi!
Erik the Outgolfer 8/11/2016

Nếu đó shlà bất cứ thứ gì hiện đại hơn vỏ Bourne cũ, một số mở rộng tham số có thể giúp : s=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}.
manatwork

@manatwork Nó không hoạt động. Có vẻ như nó không hiện đại hơn.
Erik the Outgolfer 8/11/2016

@manatwork ${VAR/FROM/TO}yêu cầu ksh93, bash hoặc zsh, không chỉ là bất cứ thứ gì hiện đại hơn so với vỏ Bourne cũ. POSIX yêu cầu các sửa đổi mở rộng #%tham số nhưng không /…/hoặc:…:
Gilles

8

SVG + bzip2, 1807 byte

Một phiên bản được vector hóa của hình ảnh ví dụ, sau đó được nén với bzip2 khoảng một nửa (4385 -> 1807 byte). Bạn có thể tải nó ở đây . (liên kết trang GitHub trực tiếp)

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��

Sẽ không chiến thắng, nhưng đăng nó cho vui.


1
bzip2không phải là ngôn ngữ lập trình.
Peter Taylor

3
@PeterTaylor Mỗi quy tắc meta, nó không phải là ngôn ngữ lập trình. ( Meta.codegolf.stackexchange.com/a/10426/41088
noɥʇʎԀʎzɐɹƆ

1
nên đăng một bản đảo ngược xxdcủa tập tin
con mèo

hãy thử sử dụng brotli để nén nhiều hơn
SUND Borsch

4
Nếu bạn thực sự thích chơi golf này, có lẽ sẽ có ý nghĩa hơn khi chỉ tạo SVG bằng tay với một vài yếu tố văn bản được đặt thành đúng màu. Đây là điểm bắt đầu: <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>Lưu ý rằng điều này thực sự khiến nó nằm ngoài vùng có thể in và không có màu nền. Như tôi đã nói, đó chỉ là một sự khởi đầu.
trlkly

8

C, 65 byte

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

hoặc, chính xác hơn:

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

Sử dụng kỹ thuật màu bash tương tự được sử dụng bởi betseg, nhưng với chuỗi thoát bát phân thay vì hex và với quan sát của Sp3000, tất cả các điểm mã lẻ đều có màu đỏ.

Lá thiết bị đầu cuối màu xanh lam. Đặt lại với:

printf "\33[0m";

Nếu ||hoạt động trong C giống như trong JavaScript ( x||y -> x?x:y), bạn có thể làm c&1||4để lưu một byte.
Sản xuất ETH

1
@ETHproductions không hoạt động theo cách đó trong C. Trong khi ||&& bị đoản mạch, chúng luôn trả về 1 hoặc 0, bất kể các giá trị liên quan.
Dave

@ Tôi đã học được điều gì đó ngày hôm nay ...
mèo

Điều này không đặt màu nền. Ngoài ra, bạn có thể sử dụng một ký tự thoát theo nghĩa đen thay vì \33để lưu hai byte, nếu điều đó không trái với quy tắc nào đó.

@yellowantphil điều này giả sử nền thiết bị đầu cuối mặc định được đặt thành màu trắng (vì thách thức nói rằng chỉ cần có thể có nó trên nền trắng). Trong thực tế trong OS X, thiết bị đầu cuối có màu đen trắng ngoài hộp.
Dave

8

Nút, 57 55 41 byte

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

Thay thế từng qbyte bằng byte 1BHbằng byte08 trước khi chạy.

Đây là giao diện của trình giả lập thiết bị đầu cuối ConEmu trên máy tính Windows của tôi (phóng to):

nhập mô tả hình ảnh ở đây


Trình giả lập thiết bị đầu cuối đó là gì!?
mèo


8

Python IDLE, 97 96 78 69 byte

Cảm ơn DrMcMoylex đã loại bỏ một số byte!

EDIT: Tìm ra rằng một trực tiếp .write()ngắn hơn 9 byte

Không thực sự là một câu trả lời thích hợp, lạm dụng nhiều hơn một chủ đề tiêu chuẩn. IDLE là IDE của Python và trừ khi nó được tùy chỉnh, STDOUTcó màu xanh, STDERRmàu đỏ và nền là màu trắng. Vì vậy, mã sau đây:

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

In này:

nhập mô tả hình ảnh ở đây

Điều này hoạt động vì ord(i)%2kiểm tra tính chẵn lẻ của điểm mã của chữ cái và in nó thành ERR/ OUTtương ứng.


8

REBOL , 100 90 95 byte (-7 byte với REPL cho 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"]

Trong REPL, REBOL ban đầu [] là không bắt buộc. Đó là 7 byte.

Phiên bản không có bản quyền là:

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

Ở bên trái, với "khoảng trống 0x0" được thêm vào mỗi khối văn bản, ở bên phải, với phần đệm 2x2 mặc định.

REBOL tôi đã bỏ phiếu
(nguồn: canardpc.com )


7

Perl, 57 + 17 = 74 byte

Chạy với -MTerm::ANSIColor

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

Thiết bị đầu cuối của bạn có thể có màu xanh ở cuối (nối ,c("reset")vào cuối mã để khôi phục nó về bình thường).

Theo mặc định, các thiết bị đầu cuối thường là nền đen, nhưng chúng có thể được tùy ý thay đổi thành màu trắng, mà cá nhân tôi không nghĩ là gian lận.

Với hình ảnh: nhập mô tả hình ảnh ở đây


7

PHP, 199 201 151 byte

Kịch bản này xuất hình ảnh thành đầu ra tiêu chuẩn. Cập nhật nhờ 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);

Chạy nó trong dòng lệnh như thế này:

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

Đầu ra:

nhập mô tả hình ảnh ở đây


2
Bỏ qua header()cuộc gọi. Mã của bạn hoạt động tốt chạy từ dòng lệnh quá. Vì error_reportinggiá trị mặc định không hiển thị các thông báo, thường được chấp nhận để không trích dẫn chuỗi ký tự của bạn. Hoặc nếu bạn không thích điều đó, str_split("I Voted")vẫn ngắn hơn việc liệt kê các ký tự riêng biệt. Và chuyển bài tập sang $ i sang lần sử dụng đầu tiên.
manatwork

1
~2**24dường như làm việc thay vì 0xFFFFFF. Không chắc chắn nếu điều này là hợp lệ cho tất cả các kiến ​​trúc. Nếu không, 2**24-1nên được xách tay.
manatwork

@manatwork cảm ơn tuyệt vời. Điều đó đã giảm xuống còn 152. Tôi đã thử ~2**242**24-1tôi đã gặp lỗi. Tôi thậm chí không biết làm thế nào những người làm việc.
Kodos Johnson

Có lẽ PHP của bạn cũ hơn 5.6.0: Đã thêm toán tử lũy thừa (**). Thay đổi - PHP thay đổi . Tương tự như pow(), nhưng xử lý cho golf. pastebin.com/jFn6ahFk
manatwork

Ồ tôi hiểu rồi. Vì php 5.5 dường như không được hỗ trợ, tôi sẽ sử dụng giải pháp của bạn. Bây giờ là 150. Cảm ơn một lần nữa.
Kodos Johnson

7

Xamarin.Forms C #, 317 313 byte

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.Endlà cần thiết cho iOS, nếu không, văn bản sẽ được phủ bởi thanh trạng thái. Không có vấn đề gì trên Android nên có thể lưu 34 byte bao gồm cả dấu phẩy.

Chỉnh sửa: 2016-11-14: -4 byte

Bị đánh cắp

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
Vâng, đó là một loại ý tưởng mới. +1
Addison Crump

7

Mã máy x86 + DOS + BIOS, 25 byte

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

Mã hội (thích hợp làm đầu vào debug.com, vì vậy tất cả các số là thập lục phân):

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

Nó sử dụng một thường trình BIOS để xuất chuỗi vào bộ nhớ hiển thị. Chuỗi sẽ xuất hiện ở vị trí "ngẫu nhiên" trên màn hình (xem bên dưới), như thế này:

ảnh chụp màn hình

Chuỗi chứa các chữ cái I V o t e d, xen kẽ với "thuộc tính"

74 74 71 74 71 74 71

chỉ định màu của các chữ cái. Ở đây 7 là chữ số có nghĩa nhất có nghĩa là "nền trắng" và chữ số có nghĩa nhỏ nhất chỉ định tiền cảnh (1 = màu xanh; 4 = màu đỏ).

Vị trí hiển thị của chuỗi được chỉ định bởi thanh dxghi. Như đã đề cập ở đây , giá trị ban đầu của thanh ghi này bằng với giá trị của thanh csghi. Và giá trị của địa chỉ đó là địa chỉ khả dụng đầu tiên trong bộ nhớ, sau khi DOS được tải.

Kích thước của DOS thường nhỏ hơn 64K, nghĩa là, địa chỉ phân đoạn của chương trình người dùng đã tải nhỏ hơn thập lục phân 1000. Vì vậy, đầu ra sẽ xuất hiện ở đâu đó xung quanh 16 dòng văn bản đầu tiên trên màn hình. Trong ví dụ của tôi, nó xuất hiện ở dòng 8 (nửa trên của dx, được gọi dhlà bằng 8).

Nửa thấp của dx , được gọi dl, chứa cột mà văn bản được xuất ra. Các thử nghiệm cho thấy BIOS không kiểm tra tràn, do đó, không có vấn đề gì nếu dxyêu cầu đầu ra ở ví dụ cột 100.


thông minh, ngắn gọn và thực sự trực quan.
tuskiomi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.