Dzisiaj jest 8 listopada 2016 r., Dzień wyborów w Stanach Zjednoczonych Ameryki.
Jeśli jesteś obywatelem USA uprawnionym do głosowania, wyjdź i zagłosuj, jeśli jeszcze tego nie zrobiłeś, zanim odpowiesz na to wyzwanie. Nie dyskutuj na kogo głosowałeś. Liczy się tylko to, że głosowałeś.
Jeśli nie jesteś obywatelem USA lub nie możesz głosować, to zanim odpowiesz na to wyzwanie, wyświadcz nam przysługę, informując każdego, kto jest uprawnionym obywatelem, aby wyszedł i głosował, jeśli jeszcze tego nie zrobił .
Wyzwanie
Napisz program informujący o głosowaniu, na przykład cyfrową naklejkę „Zagłosowałem” .
Powinno ono żadnego wejścia wyjścia i musi w rozsądny sposób frazę I Voted
gdzie I
, o
i e
są czerwone ( #FF0000
) i V
, t
i d
są niebieskie ( #0000FF
). Tło musi być białe ( #FFFFFF
).
Na przykład:
Te kolory są oczywiście reprezentatywne dla flagi amerykańskiej (choć nie oficjalne kolory ). Czerwień jest na pierwszym miejscu po prostu dlatego, że jest na pierwszym miejscu we wspólnym języku „czerwony biały i niebieski”.
Aby być poprawnym, odpowiedź musi:
Użyj kolorów określonych w określonym układzie.
Użyj jednej czytelnej czcionki i rozmiaru czcionki. W przykładzie użyto pogrubienia 72-krotnego Times New Roman, ale każda popularna czcionka powyżej 6pt jest prawdopodobnie w porządku.
Umieść tylko wyrażenie
I Voted
w jednym wierszu , poprawnie zapisane dużymi literami, z odstępem między dwoma słowami. Nie powinno tak wyglądaćIVoted
.Nie wskazuj, na kogo głosował głosujący, ani kto popiera prezydenta lub jakiekolwiek wyścigi do głosowania w dół. Nie zaczynajmy żadnych debat internetowych. Chodzi o świętowanie głosowania, a nie kandydatów.
Każdy rozsądny sposób wyświetlania lub tworzenia wyników jest prawidłowy, taki jak:
Rysowanie tekstu na obrazie, który jest następnie wyświetlany, zapisywany lub generowany na surowo.
Pisanie tekstu na konsoli za pomocą formatowania kolorów . W takim przypadku możesz w razie potrzeby uzyskać przybliżoną czystą czerwień i błękit, i jest w porządku, jeśli tylko obszar bezpośrednio za tekstem może być biały.
Wyświetlanie tekstu w formularzu WPF / Windows.
Wyprowadzanie pliku HTML / RTF / PDF z tekstem.
Proszę zamieścić obraz swojej produkcji.
Najkrótsza odpowiedź w bajtach wygrywa.
źródło
Odpowiedzi:
Czat Minecraft (klient waniliowy 1.10, serwer 1.10): 19 bajtów
lub ze strony klienta:
Minecraft używa systemu kodowania kolorów z tymi kolorami zaprogramowanymi.
Przestrzegaj zasad:
Wszystkie są prawdziwe, ponieważ:
przybliżenia czerwone i niebieskie SĄ przybliżeniami (choć nadal bardzo podobne).
Tło w czacie Minecraft jest przezroczyste, co oznacza, że można je umieścić na białym tle. (taki jak pusty świat)
źródło
&
powinno być§
sC,
8280787454 bajtyDzięki @WillihamTotland i @criptych za zapisanie 2 bajtów każdy!
Gdzie represent reprezentują bajty 0x1B (klawisz Escape). Ponieważ ten kod zawiera niedrukowalne znaki sterujące, oto odwracalny zrzut heksowy:
Dane wyjściowe na moim telefonie:
źródło
a
jako"\x1B[%dm"
, która jest sekwencją ucieczkową ANSI do kolorowania, z symbolem zastępczym. Liczby wprintf()
wypełnij te symbole zastępcze."\x1B[47;31m"
i definiując b do"\x1B[34m"
, a następnie używającputs
z naprzemiennymia
ib
przedrostkami.\33
. Nie jestem pewien, co myśli o tym standard C ...Google Blockly ,
1014 bloków,284135 blytówKod
Wynik
Wypróbuj tutaj
Nie licząc
hide turtle
bloku, bo to tylko estetyka.Blyte jest kombinacją bloku i bajtu, nie ma jeszcze meta postu, jak to policzyć, ale utworzę go później. Na razie liczę tak:
I o e
, 8 blytesV t d
, 10 blytes (tutaj 2 wiodące miejsca)Ponieważ Google Blockly jest rzadko używany do gry w golfa i myślę, że nie będzie gotowe na to wyzwanie, mam nadzieję, że jest to prawidłowe zgłoszenie.
źródło
I o
dwoma polami em?Inspect Element
i uruchomić kod w Blockly API, aby uzyskać prawdziwy kod JavaScript.HTML, 52 bajty
źródło
#FF0000
->#F00
i#0000FF
->#00F
działa<r>I <c>V<r>o<c>t<r>e<c>d<style>r{color:red}c{color:blue
działaI <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ff
i zmieniać kolor na niebieski0ff
c{color:blue}
wersja.LaTeX,
147126 bajtówOszczędność 21 bajtów i lepsze kerningowanie dzięki @ AndreïKostyrka.
Spowoduje to wydrukowanie strony A4 z tym w pierwszym wierszu (zwróć uwagę, że to również wydrukuje stronę 1 na dole):
źródło
Vo
kerning ... Ale najwyraźniej bierze pod uwagę każdą literę osobno ze względu na kolory.\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}
oszczędza 21 bajtów i daje 126 bajtów czystego typograficznego piękna.Windows 10 Batch,
5150 bajtówGdzie ␛ oznacza znak ANSI Escape 0x1B. Wydruki przy użyciu formatowania kolorów. Edycja: Zapisano 1 bajt dzięki @ brianush1. Próbowałem napisać kod, aby to wygenerować, ale zajęło to 97 bajtów. Wynik:
źródło
@color fc&echo I
JavaScript, 71 bajtów
Wykorzystuje
console.log
zdolność drukowania w kolorze. Nie działa we fragmencie stosu, więc powinieneś wkleić tę odpowiedź do konsoli, aby ją przetestować.Kredyty obrazu do @Mast
źródło
console.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
R,
113 85 81 74 7355 bajtówEdycja: Zapisano kilka bajtów dzięki @rturnbull i @JDL
Rozmiar wyjścia (i odstępy itp.) Zależy od rozdzielczości aktualnie otwartego urządzenia graficznego. Testowany w RGui i RStudio na moim monitorze i produkuje:
źródło
el()
. Dzięki za pomoc w nauce R! Ponieważtext
jest wektorowy, można pominąć dla pętli i po prostu napisać:text(seq(.3,.6,.05),.5,s,col=c("red","blue"))
. (Zmodyfikowałem twoje pozycje x dla kodu golfisty, chociaż odstępy mogą być nieco mniejco=
zamiastcol=
. I wreszcie6:12*.05
jest o kilka bajtów krótszy niżseq(.3,.6,.05)
.6:12/20
jest to oczywiście 1 bajt krótszy niż6:12*.05
, przepraszam za sprowadzenie cię na manowce i sugerowanie nieoptymalnych edycji.el()
poprawia 99% wszystkich poprzednichstrsplit
odpowiedzi o 1 bajt.LÖVE ,
152 142136 bajtówPokażmy trochę zabawy dla małego języka prototypowego! Nie jest idealny do gry w golfa (no dalej, jest oparty na LUA), ale łatwo go napisać.
Zrzut ekranu:
Wersja całkowicie nie golfowa:
źródło
love.draw()
to wbudowana funkcja, którą zastępujesz, która działa na etapie losowania. Istnieją również rzeczy takie jaklove.update()
ilove.load()
dla różnych części pętli renderowania, ale są one opcjonalne. To fajny język i możesz zacząć z nim bardzo łatwo . Czasami używam go do prototypowania pomysłów na gry.Procesor gorącej zupy , 48 bajtów
Wersja bez golfa to:
Jeśli pamiętasz, że
mes
(wiadomość) należy do HSPecho
, myślę, że jest to dość czytelne.Dziwnie, jeśli spróbujesz zrobić
pos
albopos,
, niebieska linia nie nadpisać czerwoną linię i pojawia się pod nim. Jeszcze dziwniejsze,color
ma tylko przyjmować wartości0-255
, ale0,0,-1
działa na niebieski,0,-1,0
działa na zielony i-1,0,0
działa na ... czarny? (-257,0,0
i511,0,0
pracuj jednak dla czerwonych, więc coś jest nie tak z modem 256)źródło
mes
zastępują pierwszego?MATLAB, 74 bajty
Tworzymy białe tło 50 x 50 (jedna kolumna dla każdego stanu) za
imshow
pomocą tablicyones
. Następnie wyświetlamy tekst, używając mojej sztuczki skracania nazw właściwości, aby uzyskać kolory. Ponieważ domyślna czcionka nie ma stałej szerokości, tekst jest wypełniany spacjami.MATLAB, 99 bajtów, czcionka o stałej szerokości
Pierwsza wersja wykorzystuje manipulowanie spacjami i współrzędnymi, aby uzyskać prawidłowe kerning na domyślnej czcionce i może nie wyświetlać się poprawnie na twoim komputerze. Zamiast tego możemy użyć czcionki o stałej szerokości, takiej jak
Courier
(lub, dla niektórych bajtów,FixedWidth
która działa w każdym systemie, w którym zainstalowana jest czcionka o stałej szerokości). Dzieje się tak kosztem kilku dodatkowych bajtów. Możemy to nieco złagodzić, używającfor
pętli do wydrukowania tekstu. Tekst i odpowiednie kolory są przechowywane w tablicy komórkowej. Tło musi być nieco większe.Matlab, 80-bajtowa edycja bonusowa
Niestety podkreślony niebieski tekst jest niedozwolony. W przeciwnym razie ta odpowiedź uwypukliłaby pewne interesujące zachowanie w MATLAB. Możesz wydrukować czerwony tekst za pomocą
fprintf(2,txt)
i możesz wydrukować niebieski podkreślony tekst za pomocąfprintf('<a href="">txt</a>')
. Łączenie tego działa ... czasami. Zupełnie losowo może również tworzyć czerwony podkreślony tekst. Jeśli tak jest w twoim systemie, możesz wydawaćdrawnow
między kolejnymif
połączeniami.źródło
<a href>
zamiast<a href="">
. Jeśli ci się nie podoba, możesz użyć<a href=#>
.<a>
nie działało<a>
nie jest uważane za klikalny link. aby uzyskać niebieski kolor, należy to uznać za jeden. W CSS selektorem może byća[href]
. Tak długo, jak długohref
istnieje atrybut , jest to link klikalny. Dlatego używanie tylko<a>
nie działa.ImageMagick, 102 bajty
Nie golfowany:
Gra w golfa obejmowała pełne polecenie ImageMagick
nie wywołując jawnie domyślnego
convert
narzędziaużywanie
xc:
zamiastcanvas:
(xc:
jest starym synonimemcanvas:
; nie przewiduję, że ImageMagick kiedykolwiek go wyeliminuje)nie określając koloru płótna, ale polegając na domyślnym ImageMagick, który okazuje się być biały
usunięcie szerokości
60
z geometrii (gdy zostanie pominięta, szerokość == wysokość)usunięcie „!” z geometrii, która jest potrzebna tylko do wytworzenia nie-kwadratowego płótna
canvas:white[60x30!]
używając starszego
x:
zamiastshow:
jako pliku wyjściowego (zakłada, że ImageMagick został zbudowany zX
obsługą)usunięcie niektórych białych znaków, których użyłem do wyrównania ciągów tekstowych
łączenie wielu linii polecenia (usunięto ukośnik odwrotny między wierszami)
Jeśli jesteś tak skłonny po wyborach, dodaj 12 bajtów
-rotate 180
przedshow:
dyrektywą:źródło
Bash, 35 bajtów
Mój skrypt wygląda tak
xxd pliku skryptu:
Wpisanie: ctrl-v-esc i ctrl-vh wstawi znaki zmiany znaczenia i spacje (^ [i ^ H).
źródło
Matematyka (wyjście obrazu REPL),
6549 bajtówGraficzne wyrażenie REPL.
źródło
Overlay@{"I o e"~Style~Red," V t d"~Style~Blue}
(powinny być dwie spacje między I i O oraz przed V)Java,
322319318309304229217 bajtów-9 Bajtów dzięki Kevin.
-75 Bajtów dzięki Angzurilowi, miłemu objaśnieniu na starych klasach awt, zawsze zapominaj, że one istnieją.
-12 Bajtów dzięki user902383.
Wynik:
źródło
JFrame j=
można grać w golfaFrame j=
;(c==' '||i++%2==0)?
można grać w golfac<33|i++%2<1?
itrue
można grać w golfa1>0
. Ponadto, @HelkaHomba, czy jest to poprawny wynik? Ponieważ ma także spacje międzyV o t e d
? Aha i dlaczego0,0,999,99
?0,0,99,99
jest wystarczająco duży dla tekstu na moim ekranie.(c<33||i++%2<1)?
można jeszcze zagrać w golfa o trzy bajty, usuwając nawias i zmieniając||
na|
new JComponent
tonew Container
(-1); usuńchar c="IVoted".charAt(i);
i zmieńg.drawString(c+""
nag.drawString("IVoted".charAt(i)+""
(-8).Frame j=new JFrame();j.add(new JComponent()
, abyFrame j=new Frame();j.add(new Container()
można także spadek importuimport javax.swing.*;
ig.setColor(Color.WHITE);g.fillRect(0,0,99,99)
wyniku (-63)void n(){new Frame(){{add(new Panel(){public void paint(Graphics g){int i=0;for(String c:"IVoted".split("")){g.setColor(i%2<1?Color.RED:Color.BLUE);g.drawString(c,i++*8,10);}}});setVisible(0<1);}};}
pozwala zmniejszyć o 12 bajtówBubblegum, 28 bajtów
Nie działa online, ponieważ do kolorowania używa kodów kolorów ANSI.
źródło
PowerShell v2 +,
71595755 bajtówZaoszczędzono dwa bajty dzięki @flashbang ... Zaoszczędzono jeszcze dwa dzięki @ConnorLSW
Bierze
"I Voted"
i zamienia go wchar
tablicę, a następnie zapętla|%{...}
. Każdą literę wykonujemyWrite-Host
z-b
kolorem podłoża doWhite
,-n
oNewLine i-f
kolorem rudy jako odpowiednim indeksem . Wykorzystuje to fakt, że nieparzyste wartości ASCII są czerwone, a nawet wartości ASCII są niebieskie$_%2
jako wskaźnik.Kolory konsoli w programie PowerShell są bardzo ograniczone, więc jest to najbliższe przybliżenie, jakie można uzyskać. Użycie
4
(DarkRed
) dla koloru czerwonego byłoby bardziej golfowe , ale nie wygląda dobrze, więc poświęcam kilka bajtów ze względu na dokładność kolorów.Poniżej znajduje się wynik, a następnie 16 dostępnych kolorów, które konsola może wyświetlić. Zwróć uwagę, że tło nie jest naprawdę białe, ponieważ Microsoft w swojej mądrości postanowił, aby kolory tła były nieco mniej od kolorów na pierwszym planie.
źródło
Python, 91 bajtów +
termcolor
Nie wygra, ale opublikował to dla zabawy.
Połowa kredytu przypada na Sp3000.
źródło
'blue' if c else 'red'
na'brleude'[c^1::2]
.from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
Jolf, 53 bajty
Są niedrukowalne. Wypróbuj tutaj!
Dane wyjściowe Jolfa obsługują HTML. Próbowałem zrobić coś sprytnego, jak moduł 2, aby zdecydować o kolorze, ale to skończyło się tylko dłużej (około 69 bajtów). Dane wyjściowe są w formacie HTML.
Wynik:
(większa wersja)
źródło
blue
można zapisać jako00f
?Python,
9987 bajtówWypróbuj online
źródło
sh,
6149 bajtówPonieważ zawiera to niedrukowalne, oto odwracalny zrzut heksowy xxd:
Xterm (322)
Dzięki 4198 (manatwork) dla -12 bajtów.
źródło
[47;31;1m
. I1
pogrubienie trwa do a0
, więc nie trzeba ustawiać go ponownie dla każdej litery.sh
jest coś bardziej nowoczesny niż starego Bourne shell, niektóre ekspansja parametr może pomóc:s=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}
.${VAR/FROM/TO}
wymaga ksh93, bash lub zsh, a nie tylko „czegoś bardziej nowoczesnego niż stara powłoka Bourne'a”. POSIX wymaga#
i%
ekspansji parametr modyfikatory ale nie/…/
lub:…:
SVG +
bzip2
, 1807 bajtówWektoryzowana wersja przykładowego obrazu, następnie skompresowana za pomocą bzip2 do około połowy (4385 -> 1807 bajtów). Możesz go pobrać tutaj . (bezpośredni link do stron GitHub)
Nie wygra, ale opublikował to dla zabawy.
źródło
bzip2
nie jest językiem programowania.xxd
pliku<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>
Zauważ, że faktycznie renderuje to poza obszarem drukowania i nie ma koloru tła. Tak jak powiedziałem, to dopiero początek.C, 65 bajtów
lub dokładniej:
Wykorzystuje tę samą technikę koloru bazowego, którą zastosował betseg, ale z ósemkową sekwencją ucieczki zamiast heksów oraz z obserwacją Sp3000, że wszystkie nieparzyste punkty kodowe są czerwone.
Pozostawia terminal w kolorze niebieskim. Zresetuj za pomocą:
źródło
||
działa w C tak jak w JavaScript (x||y -> x?x:y
), możesz zrobić,c&1||4
aby zapisać bajt.||
i&&
jest zwarcie, to zawsze zwraca 1 lub 0, niezależnie od wartości zaangażowanych.\33
zapisywać dwa bajty, jeśli nie jest to w jakiś sposób sprzeczne z regułami.Węzeł,
575541 bajtówZastąp każdy
q
bajtem dosłownym1B
iH
bajtem08
przed uruchomieniem.Oto jak wygląda emulator terminala ConEmu na moim komputerze z systemem Windows (powiększony):
źródło
Python IDLE,
97967869 bajtówDzięki DrMcMoylex za golenie niektórych bajtów!
EDYCJA: Odkryłem, że bezpośredni
.write()
był o 9 bajtów krótszyNiezupełnie poprawna odpowiedź, więcej nadużyć standardowego motywu. IDLE jest IDE Pythona i jeśli nie jest dostosowany,
STDOUT
jest niebieski,STDERR
jest czerwony, a tło jest białe. Tak więc następujący kod:Drukuje to:
Działa to, ponieważ
ord(i)%2
sprawdza parzystość punktu kodu litery i drukuje go odpowiednio doERR
/OUT
.źródło
REBOL ,
1009095 bajtów (-7 bajtów z REPL dla 88)W REPL początkowa REBOL [] nie jest wymagana. To 7 bajtów.
Wersja bez golfa to:
Po lewej stronie, z „spacją 0x0” dodaną do każdego bloku tekstowego, po prawej, z domyślnym wypełnieniem 2x2.
(źródło: canardpc.com )
źródło
Perl, 57 + 17 = 74 bajty
Biegnij z
-MTerm::ANSIColor
Twój terminal może być niebieski na końcu (dołącz
,c("reset")
na końcu kodu, aby przywrócić go do normy).Domyślnie terminale mają zazwyczaj czarne tło, ale można je opcjonalnie zmienić na białe, co osobiście nie uważam za oszustwo.
Ze zdjęciem:
źródło
PHP,
199201151 bajtówTen skrypt wyświetla obraz na standardowe wyjście. Zaktualizowano dzięki manatwork
Uruchom go w wierszu polecenia w następujący sposób:
Wynik:
źródło
header()
połączenie. Twój kod działa dobrze również z wiersza poleceń. Ponieważerror_reporting
domyślna wartość nie pokazuje powiadomień, ogólnie nie można cytować literałów łańcuchowych. Lub jeśli ci się to nie podoba,str_split("I Voted")
jest jeszcze krótszy niż osobne wyliczanie znaków. I przenieś przydział do $ i do jego pierwszego użycia.~2**24
wydaje się działać zamiast0xFFFFFF
. Nie jestem pewien, czy dotyczy to wszystkich architektur. Jeśli nie,2**24-1
powinien być przenośny.~2**24
i2**24-1
ale mam błędy. Nie wiem nawet, jak to działa.pow()
, ale poręczniejszy do gry w golfa. pastebin.com/jFn6ahFkXamarin.Forms C #,
317313 bajtówVerticalOptions=LayoutOptions.End
jest wymagany na iOS, w przeciwnym razie tekst zostanie nałożony na pasek stanu. Nie ma problemu na Androidzie, więc można zapisać 34 bajty, w tym przecinek.Edycja: 14.11.2016: -4 bajty
Nie golfił
źródło
kod maszynowy x86 + DOS + BIOS, 25 bajtów
Hexdump:
Kod zestawu (odpowiedni jako dane wejściowe
debug.com
, więc wszystkie liczby są szesnastkowe):Wykorzystuje procedurę BIOS do wyprowadzenia ciągu do pamięci wyświetlacza. Ciąg pojawi się na ekranie w „losowej” pozycji (patrz poniżej), jak poniżej:
Ciąg zawiera litery
I V o t e d
przeplecione z „atrybutami”które określają kolor liter. Tutaj 7 jako najbardziej znacząca cyfra oznacza „białe tło”, a najmniej znacząca cyfra określa pierwszy plan (1 = niebieski; 4 = czerwony).
Pozycja wyświetlania ciągu jest określona przez
dx
rejestr. Jak wspomniano tutaj , początkowa wartość tego rejestru jest równa wartoścics
rejestru. A wartość tego jest pierwszym dostępnym adresem w pamięci, po załadowaniu DOS.Rozmiar DOS jest zwykle mniejszy niż 64 KB, to znaczy adres segmentu załadowanego programu użytkownika jest mniejszy niż szesnastkowy
1000
. Tak więc wynik pojawi się gdzieś wokół pierwszych 16 wierszy tekstu na wyświetlaczu. W moim przykładzie pojawił się w linii 8 (górna połowadx
, nazywanadh
, jest równa 8).Niska połowa
dx
tzw.dl
Zawiera kolumnę, w której tekst jest wyprowadzany. Eksperymenty pokazują, że BIOS nie sprawdza przepełnienia, więc nie ma znaczenia, czydx
prosi o wyjście np. W kolumnie 100.źródło