Einführung
Bekanntlich feiert Finnland 2017 sein 100-jähriges Bestehen. Aus diesem Anlass ist es Ihre Aufgabe, eine finnische Flagge zu erstellen, die jedem Spaß macht.
Herausforderung
Erstellen Sie ein Programm oder eine Funktion, die die Flagge Finnlands erzeugt (der graue Rand dient nur zu Präsentationszwecken):
Flaggen-Spezifikationen
- Das Verhältnis der Flagge ist
18:11
, wobei das Kreuz3
Einheiten dick ist, was einen horizontalen Verhältnissatz von5:3:10
und einen vertikalen Verhältnissatz von ergibt4:3:4
. - Das Bild muss mindestens
180 x 110
Pixel groß sein oder bei ASCII-90 x 55
Zeichen. - Es gibt keine offizielle RGB-Farbe für das Blau, aber verwenden Sie die genaueste Annäherung an
(0, 53, 128)
. Wenn Ihr System keine RGB-Werte unterstützt, verwenden Sieblue
. - Verwenden Sie für die weiße Farbe RGB
(255, 255, 255)
oderwhite
.
Nicht so schnell
Da das Ziehen der finnischen Nationalflagge einfacher wäre als die isländische Herausforderung des letzten Jahres , müssen wir die Schwierigkeit etwas erhöhen. Angesichts der Tatsache, dass der Unabhängigkeitstag Finnlands am 6. Dezember ist, muss die Dezimalzahl 100
irgendwo auf der Flagge erscheinen, wenn das Datum in Finnland ( UTC + 02: 00 ) 2017-12-06
oder später ist (Ihr Code sollte nicht davon ausgehen, dass der Computer, auf dem er ausgeführt wird, auf a gesetzt ist bestimmte Zeitzone). Vor dem Datum darf die Nummer nicht da sein. Die Nummer muss in Schwarz (RGB (0, 0, 0)
oder black
) gedruckt werden, aber die Platzierung und die Schriftparameter liegen bei Ihnen.
Ein Beispiel für ein solches Rendering (ignorieren Sie den Rand erneut):
Zu Testzwecken wäre es hilfreich, zwei zusätzliche Versionen Ihrer Lösung einzuschließen, eine mit einem festen Datum in der Vergangenheit und eine in der Zukunft.
Regeln
Standardlücken sind verboten, ebenso wie eingebaute Flag-Images / Bibliotheken. Außerdem darf Ihr Code keine Eingabe annehmen.
Finnen mögen kein Smalltalk, und das ist Codegolf , also verschwende keine Zeichen!
quelle
#
im Falle von ASCII-Kunst verwenden ? Und dann die Zeichen100
irgendwo einfügen ?Antworten:
C (Windows): 361 Byte
Abgerollt:
Ausgabe:
Ausgabe wenn
UTC time >= 2017-12-05-22-00
:Fügen Sie dem Code Folgendes hinzu, nachdem Sie
d=gmtime(&n);
es versucht haben:quelle
PHP + SVG (HTML5),
147137123 BytesSVG-Code von Neil
https://codegolf.stackexchange.com/a/149850/66061
Update: Danke an Shaggy, der mir geholfen hat, 10 Bytes zu sparen.
Update 2: Schlaue Idee von Ismael Miguel , danke für das Speichern von 14 Bytes
Normal
Nach dem 6. Dezember +2 Stunden
quelle
time()
es also UTC?1512525600
?1512525600
is2017-12-06T02:00:00+00:00 in ISO 8601
@ Adám und yes, time () ist zeitzonenunabhängig.Röda ,
252250 BytesProbieren Sie es online!
quelle
C #,
407400277 BytesKomisch wie
ForegroundColor =0
das erlaubt istDank TuukkaX 1 Byte gespeichert
67 Bytes dank Adam eingespart
ungolfed zum testen:
zum Testen von 100:
quelle
ForegroundColor = 0
ist zulässig, da das Literal0
in einen beliebigen Aufzählungstyp konvertierbar ist, wie in der C # -Spezifikation angegeben .Mathematica, 129 Bytes
vor .. nach ..
Sie können es jederzeit auf der Wolfram Sandbox testen
(Code einfügen und Umschalt-Enter drücken)
quelle
3721507200
?Python 2 ,
247246230210189 BytesProbieren Sie es online!
Druckt ein PPM-Bild:
Normale Flagge
Fahne mit 100
quelle
datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)
mitdatetime.utcnow()>=datetime(2017,12,05,22,0,0)
oder etwas ähnliches ersetzt werden?time.gmtime
stattdessen für Tupelvergleiche (siehe meine Antwort)!Python 3,
143141135 BytesVerwendet ANSI-Escape für Farben, verwendet fünf Leerzeichen oder "100" als farbige Zeichenfolge, sodass ich nicht extra "100" irgendwo auf der Flagge drucken muss. Länge 5 wegen der Breite, weil
90/5 == 90//5
. Die verwendete Zeichenfolge wird in Zeile 1 definiert. Dann iterieren wir 55 round (height). Bei jeder Iterationv
wird die Zeichenfolge mit der Farbe [Blue, BrightWhite] festgelegt und der ausgewählte Index ist booleschrow<20 or r>34
. Wir multiplizieren dieses Ergebnis erneut mit 5 (Breitenabmessungen: 25:15:50, sodass die Gesamtbreite 90 beträgt). Dann drucken wir aus,v + Blue + Blue + Blue + v + v + Black
wov
entweder Blau oder Hellweiß ist. Zur Verdeutlichung des Drucks: Die Breitev
beträgt 25 Zeichen, die Breite von Blau (e%44*3
) 15 und die Breitev*2
50 Zeichen .25+15+50
ist 90, das ist die Breite und folgt den Abmessungen, die für die Aufgabe erforderlich sind! Ziemlich chaotisch, aber ich denke, es ist besser als nichts.quelle
Processing.org / Java
191188 Bytes-3 Bytes dank KevinCruijssen
quelle
>15125255999999L
kann sein>=15125256e6
15125256e6
ist ,15125256000000
wenn ich testen Sie es in Java 8. Aber ich weiß nicht , Processing.org, so ist es vielleicht etwas anders oder eine andere Version verwenden? Hier ist ein TIO mit einigen grundlegenden Tests ,15125256e6
um sicherzustellen , es in Java funktioniert 8. Aber ich bin froh , das ,D
nachdem es es behebt. Froh, dass ich helfen konnte. :)Excel VBA,
120118117 BytesAnonyme VBE-Direktfensterfunktion, die keine Eingabe und Ausgabe der finnischen Flagge akzeptiert und auf der die Flagge angezeigt wird, wenn Finnland älter als 100 Jahre ist
100
. Dies geschieht in Bezug auf die Oster-Zeitzone der USA, da Excel oder Excel VBA die Zeitzone nicht ermitteln können, ohne Add-Ins zu verwenden oder auf das Internet zuzugreifen.Ausgabe
Wenn Finnland jünger als 100 Jahre ist
Wenn Finnland älter als 100 Jahre ist
-2 Byte für den Wechsel
If #12/5/17 19:00#<=Now Then[B2]=100
zuIf Now>=#12/5/17 19:0#Then[B2]=100
-1 Byte für die Verwendung von
Cells
anstatt[A1:R11]
quelle
MATLAB,
133130123 Bytes310 bytes sabed danke für @flawr!Dies gilt
[0, 51, 128]
für die blaue Farbe. Die Größe des Bildes beträgt 180 × 110 Pixel.Probelauf:
Probelauf mit dem Text (Ändern
737035
zu0
in dem Code , so dass der Text an jedem Tag angezeigt):quelle
JavaScript (ES5) + SVG (HTML5),
189179 Bytes(HTML, um zu zeigen, dass die Farbanforderungen erfüllt werden.) Bearbeiten: Dank @Shaggy 10 Byte gespeichert. Ausgänge:
quelle
Date.now()
ist in UTC und ich vergleiche mit dem UTC-Wert von2017/12/06 00:00:00 UTC+2
.<path></path>
durch<path/>
, um einige Bytes zu sparen.Python 3 mit Pillow,
213212211 Zeichen (Unix) und217216 Zeichen (Portable)Dies ist die Unix-Version. Nach der Veröffentlichung wurde mir klar, dass die von zurückgegebene Zeit
time()
nicht unbedingt ihre Epoche am 1. Januar 1970 hat und daher nicht unbedingt portabel ist.Dies ist der portable Code, 4 Bytes mehr, der
gmtime
mit Tupelvergleich verwendet wird, sodass er auch unter Windows zuverlässig funktionieren sollte.Die Bilder werden in einem Fenster angezeigt. Es ist wirklich schwierig, dafür zu sorgen, dass weniger Zeichen verbraucht werden. Sogar die
time.time
Rückgabe einesfloat
so>0x5a273299
wäre nicht ganz so korrekt oder>0x5a273300
würde um eine Mikrosekunde verschoben sein.quelle
Tcl / Tk , 135 Bytes
Muss in der interaktiven Shell ausgeführt werden
Vor dem 06.12.2017, 02:00 Uhr GMT
Nach dem 06.12.2017, 02:00 Uhr GMT
quelle
Java
342368361321317 (299 + 18) BytesGolf gespielt
Ungolfed
Ergebnis
Credits
40 Bytes, die Olivier Grégoire für die Verwendung von Lambda gespeichert hat .
4 Bytes, die Kevin Cruijssen für die lange Formatierung gespeichert hat .
2 Bytes, die vom Benutzer 902383 für die Hex-Formatierung gespeichert wurden .
quelle
true
s mit1>0
,args
mita
, und die Räume um entfernen können=
beiP j = new...
zu sparen ein paar Bytes.import java.awt.*;
), einschließlich der Bedingung.import
. 2. Die Variablennamen werden nicht gekürzt:args
Kann auf reduziert werdena
. 3. Der Eintrag enthält noch optionale Leerzeichen. 4. Es gibt keinen bedingten Ausdruck von "100".vim, 147
Diese Herausforderung gefällt mir sehr gut ☺. © ist Flucht.
quelle
Bash und Imagemagick, 135
quelle
((`date +%s`>=1512511200))&&x=100
. Beachten Sie, dass ich die einzelnen Anführungszeichen innerhalb des-draw
Parameters verschoben habe , wo sie nicht maskiert werden müssen.Imperativ Tampio , 239 Bytes (nicht konkurrierend)
Online Version
Übersetzung:
SVG wurde von th3pirat3 (und Neil anscheinend) aus dieser Antwort übernommen .
Dieses Programm ist in einer neuen Version von Tampio geschrieben, an der ich gearbeitet habe. Diejenigen unter Ihnen, die Finnisch sprechen, können sehen, dass es fast lesbar ist. Ich habe die Antwort als nicht konkurrierend markiert, da diese Sprache nach dieser Herausforderung veröffentlicht wurde.
Um dieses Programm auszuführen, gehen Sie entweder zu der obigen Online-Version, die die kompilierte JS-Version des Programms enthält, oder laden Sie den Compiler von seiner Github-Seite herunter . Führen Sie zum Kompilieren des Programms Folgendes aus
python3 tampio.py -p program.itp >program.html
.Tampio ist in keiner Weise eine Golfsprache, aber aufgrund des besseren SVG-Codes hat es Röda tatsächlich geschlagen ... Ich war ein wenig überrascht.
quelle
Bash, 198
quelle
HTML + CSS + Javascript, 339 Bytes
Hier ist dieselbe Lösung, die auf 260 Bytes reduziert wurde, wobei davon ausgegangen wird, dass Ihr Anzeigeport das richtige Verhältnis von 18:11 aufweist.
Sie können in beiden Lösungen eine 0 vom Zeitstempel entfernen, um die "100" anzuzeigen.
quelle
HTML + Javascript, 329 Bytes
Ich habe den Teil zur Datumsüberprüfung schamlos von @jstnthms gestohlen. Grundsätzlich schreibe ich nur grobe HTML-Tabelle mit korrekten Zeilen / Spalten-Verhältnissen,
th
da die blauen Teile. Getestet auf IE und Chrome, auch bei mee.fi -site.quelle
Perl 5, 139 Bytes
ins Leben gerufen werden
Verhältnis wurde aufgrund des Zeichenverhältnisses Höhe / Breite = 1,66 (5/3) geändert, ansonsten mit ursprünglichem Verhältnis:
quelle
Schläger 6.10 mit 2HTP / Image, 202 Bytes
Ungolfed:
quelle
100
auf ein blaues Teil setzt - hast es fast verpasst.Kleines Basic , 300 Bytes
Ein Skript, das keine Ein- und Ausgaben für das
TextWindow
Objekt vornimmt.Probieren Sie es bei SmallBasic.com! Benötigt IE / Silverlight
Ausgabe
Dargestellt nach dem 100. Unabhängigkeitstag Finnlands.
quelle
Der zuvor erstellte Code wurde auf Folgendes reduziert:
HTML, CSS und JavaScript, 1599 Bytes
quelle
===
und100
) entfernen .HTML + JavaScript, 247 Bytes
quelle
JavaScript ES6, 532 Byte
Beschlossen, versuchen Sie es mit einem Base64-Image, um zu sehen, wie kurz ich es bekommen könnte. Kein Gewinner, aber trotzdem interessant.
quelle
${(…)}
→${…}
); Keine doppelten Anführungszeichen für diese HTML-Attributwerte erforderlich. Obwohl ungültig, können Sie in den meisten Fällen die Auffüllung der base64-codierten Zeichenfolgen mit Gleichheitszeichen abschneiden (Firefox hat mit Sicherheit kein Problem, sie zu decodieren).