Alles Gute zum Geburtstag Finnland!


37

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

Flagge von Finnland

Flaggen-Spezifikationen

  • Das Verhältnis der Flagge ist 18:11, wobei das Kreuz 3Einheiten dick ist, was einen horizontalen Verhältnissatz von 5:3:10und einen vertikalen Verhältnissatz von ergibt 4:3:4.
  • Das Bild muss mindestens 180 x 110Pixel groß sein oder bei ASCII- 90 x 55Zeichen.
  • 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 Sie blue.
  • Verwenden Sie für die weiße Farbe RGB (255, 255, 255)oder white.

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 100irgendwo auf der Flagge erscheinen, wenn das Datum in Finnland ( UTC + 02: 00 ) 2017-12-06oder 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):

Flagge von Finnland mit 100 drauf

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 , also verschwende keine Zeichen!


Sollen wir nur den Raum und # im Falle von ASCII-Kunst verwenden ? Und dann die Zeichen 100irgendwo einfügen ?
Adám

1
Können wir das Datum in Finnland als Eingabe für Systeme verwenden, die keine interne Wanduhr haben oder die Zeitzone nicht implementieren? Ich poste gelegentlich Antworten in GFA-Basic (Atari ST, keine Zeitzone) oder CP-1610-Baugruppe (Intellivision, überhaupt kein Datum / Uhrzeit) und wir haben von Zeit zu Zeit Antworten auf einigen anderen Plattformen der alten Schule, die normalerweise sind Ziemlich gut darin, solche Dinge zu zeichnen, aber aufgrund des Datumsproblems hier disqualifiziert zu sein.
Arnauld

1
@Arnauld: Meine Güte, ich hätte nie gedacht, dass jemand solche Systeme verwenden würde. Ich weiß Ihre missliche Lage zu schätzen, aber würde das andere benachteiligen? Ich denke, wenn Sie die Eingabe zulassen, erhalten Sie nur einen einfachen Ganzzahlvergleich. Wäre ein nicht konkurrierender Eintrag ohne den Zeitaspekt nicht in Frage gekommen?
Antti29

1
@ Antti29 Ehrlich gesagt, mir fällt keine gute Lösung ein, und es ist zu spät, die Regeln grundlegend zu aktualisieren. Ich denke, diese Systeme können hier einfach nicht mithalten, es sei denn, jemand kommt mit einem wirklich befriedigenden Vorschlag. (Ich sah die Herausforderung im Sandkasten und dachte nicht darüber nach. Mein schlechtes.)
Arnauld

Antworten:


24

C (Windows): 361 Byte

#import<time.h>
#import<windows.h>
C(x){SetConsoleTextAttribute(GetStdHandle(-11),x);}F(I,N,l,a,n,d)time_t n;struct tm*d;{system("mode 90,65");time(&n);d=gmtime(&n);n=d->tm_year<<24|d->tm_mon<<16|d->tm_mday<<8|d->tm_hour;for(a=l=I=15;I++<70;a=l=I<35|I>49?15:9)for(N=n>1963656468&I<17?C(240),printf("100"):0;N++<90;a=N-25?a:9,a=N-40||l==9?a:15)C(a),putchar(70);}

Abgerollt:

#import <time.h>
#import <windows.h>

C(x)
{
    SetConsoleTextAttribute(GetStdHandle(-11),x);
}

F(I,N,l,a,n,d) time_t n;struct tm*d;
{
    system("mode 90,65");

    time(&n);
    d = gmtime(&n);
    n = d->tm_year<<24 | d->tm_mon<<16 | d->tm_mday<<8 | d->tm_hour;

    for(a=l=I=15; I++<70; a=l=I<35|I>49?15:9)
        for(N=n>1963656468&I<17?C(240),printf("100"):0; N++<90; a=N-25?a:9,a=N-40||l==9?a:15)
            C(a), putchar(70);
}

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:

d->tm_year = 117;
d->tm_mon = 11;
d->tm_mday = 5;
d->tm_hour = 21;

13
Süße Variablennamen!
Adám

16

PHP + SVG (HTML5), 147 137 123 Bytes

SVG-Code von Neil

https://codegolf.stackexchange.com/a/149850/66061

<svg><path d=180v110 fill=#fff></path><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580></path><?=time()<1512511200?:'<text x=9 y=15>100';

Update: Danke an Shaggy, der mir geholfen hat, 10 Bytes zu sparen.

<svg><path d=180v110 fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 /><?=time()<1512511200?:'<text x=9 y=15>100';

Update 2: Schlaue Idee von Ismael Miguel , danke für das Speichern von 14 Bytes

<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 /><?=time()<1512511200?:'<text y=19>100';

Normal

normal

Nach dem 6. Dezember +2 Stunden

nach dem 6. Dezember - +2 Stunden


Gibt time()es also UTC?
Adám

Wann ist 1512525600?
Am

1512525600is 2017-12-06T02:00:00+00:00 in ISO 8601@ Adám und yes, time () ist zeitzonenunabhängig.
th3pirat3

12

Röda , 252 250 Bytes

{s={|w,h|[` width="$w" height="$h" `]}r=`><rect`f=`" fill="#003580"/`
[`<svg`,s(18,11),r,s(18,11),`fill="#fff"/`,r,s(18,3),`y="4$f`,r,s(3,11),`x="5$f>`]
[`<text y="9" font-size="2">100</text>`]if{}|[[exec("date","+%s")]&"">="1512511200
"]
[`</svg>`]}

Probieren Sie es online!


25
Die Kühnheit! Sie haben eine finnische Herausforderung mit einer schwedischen Sprache gelöst.
Antti29

1
@ Arthur Es ist nach dem schwedischen Wort benannt, es gibt kein solches Wort auf Finnisch. Der Git enthält Finnisch, weil ich finnisch spreche.
Fergusq

1
@Arthur: Ich fürchte, Sie müssen sich mit der finnischen Denkweise
befassen,

1
@fergusq Nun, wenn es von dem Mann ist, der die Sprache tatsächlich benannt hat, dann gibt es wohl keine höhere Autorität. Trotz des Wissens, dass "röda" kein finnisches Wort ist, halte ich meinen vorherigen Kommentar für plausibel. Sprachnamen müssen keine echten Wörter sein. Ich bin mir zwar nicht ganz sicher, aber der Widerspruch der Finnen gegen Schweden ist mir durchaus bewusst. Die Besatzungsgeschichte und das Schwedische sind in den Schulen als eine von mehreren ständigen Erinnerungen obligatorisch.
Arthur

1
@ PaŭloEbermann: Leider.
Antti29

11

C #, 407 400 277 Bytes

Komisch wie ForegroundColor =0das erlaubt ist

Dank TuukkaX 1 Byte gespeichert

67 Bytes dank Adam eingespart

()=>{for(int x=0,y;x<90;x++)for(y=0;y<55;y++){BackgroundColor=(ConsoleColor)15;if(x>24&x<41|(y>19&&y<36))BackgroundColor=(ConsoleColor)9;SetCursorPosition(x,y);Write(' ');}if(new DateTime(2017,12,5,22,0,0)<DateTime.UtcNow){SetCursorPosition(1,1);ForegroundColor=0;Write(100);}}

ungolfed zum testen:

using System;
using static System.Console;
class P
{
    static void Main()
    {
        Action func = () =>
        {
            for (int x = 0,y; x < 90; x++) for (y=0; y < 55; y++)
                {
                    BackgroundColor = (ConsoleColor)15;
                    if (x > 24 & x < 41 | (y > 19 && y < 36))
                        BackgroundColor = (ConsoleColor)9;
                    SetCursorPosition(x, y);
                    Write(' ');
                }

            if (new DateTime(2017, 12, 5, 22, 0, 0) < DateTime.UtcNow)
            {
                SetCursorPosition(1, 1); ForegroundColor =0; Write(100);
            }
        };
        func();
        ReadLine();
    }
}

zum Testen von 100:

using System;
using static System.Console;
class P
{
    static void Main()
    {
        Action func = () =>
        {
            for (int x = 0,y; x < 90; x++) for (y=0; y < 55; y++)
                {
                    BackgroundColor = (ConsoleColor)15;
                    if (x > 24 & x < 41 | (y > 19 && y < 36))
                        BackgroundColor = (ConsoleColor)9;
                    SetCursorPosition(x, y);
                    Write(' ');
                }

            if (new DateTime(2017, 12, 2, 22, 0, 0) < DateTime.UtcNow)
            {
                SetCursorPosition(1, 1); ForegroundColor =0; Write(100);
            }
        };
        func();
        ReadLine();
    }
}

3
ForegroundColor = 0ist zulässig, da das Literal 0in einen beliebigen Aufzählungstyp konvertierbar ist, wie in der C # -Spezifikation angegeben .
Joey

9

Mathematica, 129 Bytes

If[AbsoluteTime@Date[]<3721507200,s="",s=100];Graphics@{s~Text~{9,9},RGBColor[0,.2,.5],{0,4}~(R=Rectangle)~{18,7},{5,0}~R~{8,11}}


vor .. nach ..
Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben
Sie können es jederzeit auf der Wolfram Sandbox testen
(Code einfügen und Umschalt-Enter drücken)


Wann ist 3721507200?
Adám

@ Adám AbsolutimeTime gibt die Gesamtanzahl der Sekunden seit Beginn des 1. Januar 1900 an
J42161217

@Jenny_mathy 1. Januar 1900 von welcher Zeitzone?
Daffy

@Daffy of utc +02: 00
J42161217

9

Python 2 , 247 246 230 210 189 Bytes

import time
print'P3',180,110,255
w,b='255 '*3,'0 52 128 ';B=['0 '*3,w][time.gmtime()<(2017,12,5,22)]
a=w*40+b*30+w*100
x=w*10+a;y,z=w+B+w+B*3+w+B*3+a,(w+B)*5+a
print y+z+y+x*37+b*5400+x*40

Probieren Sie es online!

Druckt ein PPM-Bild:

Normale Flagge

Finnland

Fahne mit 100

Finland100


Kann datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)mit datetime.utcnow()>=datetime(2017,12,05,22,0,0)oder etwas ähnliches ersetzt werden?
Am

Verwenden Sie time.gmtimestattdessen für Tupelvergleiche (siehe meine Antwort)!
Antti Haapala

[time.time ()> 1512514800]
Dieter

7

Python 3, 143 141 135 Bytes

Verwendet 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 Iteration vwird die Zeichenfolge mit der Farbe [Blue, BrightWhite] festgelegt und der ausgewählte Index ist boolesch row<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 + Blackwo ventweder Blau oder Hellweiß ist. Zur Verdeutlichung des Drucks: Die Breite vbeträgt 25 Zeichen, die Breite von Blau ( e%44*3) 15 und die Breite v*250 Zeichen .25+15+50ist 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.

import time;e="\033[30;%dm "+[" "*4,"100 "][time.time()>1512511200]
for r in range(55):v=e%[107,44][19<r<35]*5;print(v+e%44*3+v*2+e%40)

2
Willkommen auf der Seite!
Caird Coinheringaahing

2
Willkommen bei PPCG! Ich habe Ihrer Antwort eine Sprachmarkierung hinzugefügt, und ich würde vorschlagen, dass Sie eine grundlegende Beschreibung der Funktionsweise Ihres Programms hinzufügen - ansonsten jedoch eine hervorragende erste Antwort :)
Taylor Scott

2
@ TaylorScott wird es tun! Und danke, ich habe ein oder zwei Jahre hier gelauert, aber noch nie etwas eingereicht. Ich konnte einfach nicht widerstehen, weil Finnland 100 Jahre alt wird!
FatalError

7

Processing.org / Java 191 188 Bytes

-3 Bytes dank KevinCruijssen

import java.util.*;void setup(){size(180,110);background(-1);fill(0);if(new Date().getTime()>=15125256e6D)text("100",0,9);noStroke();scale(10);fill(#003580);rect(5,0,3,11);rect(0,4,18,3);}

Vorher Nachher


>15125255999999Lkann sein>=15125256e6
Kevin Cruijssen

@ KevinCruijssen vielleicht kann es verkürzt werden, aber 15125256e6 ist 15125255815168, was 37 Stunden zu spät ist
PrincePolka

15125256e6D funktioniert, danke
PrincePolka

Hmm, 15125256e6ist , 15125256000000wenn 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 , 15125256e6um sicherzustellen , es in Java funktioniert 8. Aber ich bin froh , das , Dnachdem es es behebt. Froh, dass ich helfen konnte. :)
Kevin Cruijssen

7

Excel VBA, 120 118 117 Bytes

Anonyme 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.

Cells.RowHeight=48:Cells.Interior.Color=-1:[F1:H11,A5:R7].Interior.Color=8402176:If Now>=#12/5/17 19:0#Then[B2]=100

Ausgabe

Wenn Finnland jünger als 100 Jahre ist

Junges Finnisch

Wenn Finnland älter als 100 Jahre ist

Altes Finnisch

-2 Byte für den Wechsel If #12/5/17 19:00#<=Now Then[B2]=100zuIf Now>=#12/5/17 19:0#Then[B2]=100

-1 Byte für die Verwendung von Cellsanstatt[A1:R11]


2
Wer hätte gedacht, der alte VBA könnte das tun. Ausgezeichnet.
Floris

3
@Floris, mir ist klar geworden, dass Excel VBA in Bezug auf Pixelkunst erstaunliche Dinge bewirken kann . : D
Taylor Scott

Ich erinnere mich, dass ich etwas in den Vorläufer von VBA geschrieben habe (eine verrückte Makrosprache, die in den Zellen des Excel-Blatts geschrieben wurde, eine Zeile pro Zelle), das etwas Ähnliches tat (ein 2D-Intensitätsdiagramm einer Funktion, die ich studierte). Das muss 1991 gewesen sein. Danke für die Erinnerungen.
Floris

1
@ Floris gut, das ist eine Schande - aber es ist gut zu wissen, dass jemand anderes weiß, was sie sind :)
Taylor Scott

1
Und kommen Sie, um darüber nachzudenken - es gab etwas vor 4.0 ... Ich erinnere mich, dass ich genervt war, als alles kaputt ging. So wie ich es schon oft gemacht habe. Meister der nicht abwärtskompatiblen.
Floris

5

MATLAB, 133 130 123 Bytes

3 10 bytes sabed danke für @flawr!

r=1:180;r(51:80)=0;imshow(r(11:120)'*r,[0 .2 .5;1 1 1])
if datenum(datetime('now','T','UTC+2'))>=737035 text(9,9,'100'),end

Dies gilt [0, 51, 128]für die blaue Farbe. Die Größe des Bildes beträgt 180 × 110 Pixel.

Probelauf:

Bildbeschreibung hier eingeben

Probelauf mit dem Text (Ändern 737035zu 0in dem Code , so dass der Text an jedem Tag angezeigt):

Bildbeschreibung hier eingeben


4

JavaScript (ES5) + SVG (HTML5), 189 179 Bytes

document.write('<svg><path d=M0,0h180v110H0z fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0Z fill=#005580 />'+(Date.now()<15125112e5?'':'<text x=0 y=30 fill=#000>100'))
<body color=grey bgcolor=silver>

(HTML, um zu zeigen, dass die Farbanforderungen erfüllt werden.) Bearbeiten: Dank @Shaggy 10 Byte gespeichert. Ausgänge:

<body color=grey bgcolor=silver>

<svg><path d=M0,0h180v110H0z fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0Z fill=#005580 />

<body color=grey bgcolor=silver>

<svg><path d=M0,0h180v110H0z fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0Z fill=#005580 /><text x=0 y=30 fill=#000>100


Wie wird der Zeitzonenversatz behandelt, wenn er an einer anderen Stelle als in UTC + 2 ausgeführt wird?
Adám

@Adam Date.now()ist in UTC und ich vergleiche mit dem UTC-Wert von 2017/12/06 00:00:00 UTC+2.
Neil

Ist es in Ordnung, deinen SVG-Code in meinem PHP-Snippet zu verwenden?
th3pirat3

2
@Adam hab ich dir schon gesagt?
Neil

1
Ersetzen Sie <path></path>durch <path/>, um einige Bytes zu sparen.
Shaggy

4

Python 3 mit Pillow, 213 212 211 Zeichen (Unix) und 217 216 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.

b=8402688;from PIL import Image,ImageDraw as d
j=Image.new('RGB',(180,110),~1);r=d.Draw(j);R=r.rectangle
R([50,0,79,109],b);R([0,40,180,69],b);import time
r.text((9,9),'100'*(time.time()>=0x5a273300),0)
j.show()

Dies ist der portable Code, 4 Bytes mehr, der gmtimemit Tupelvergleich verwendet wird, sodass er auch unter Windows zuverlässig funktionieren sollte.

import time
from PIL import Image,ImageDraw as d
b=8402688
j=Image.new('RGB',(180,110),~1)
r=d.Draw(j)
R=r.rectangle
R([50,0,79,109],b)
R([0,40,180,69],b)
r.text((9,9),'100'*(time.gmtime()>(2017,12,5,22)),0)
j.show()

Die Bilder werden in einem Fenster angezeigt. Es ist wirklich schwierig, dafür zu sorgen, dass weniger Zeichen verbraucht werden. Sogar die time.timeRückgabe eines floatso >0x5a273299wäre nicht ganz so korrekt oder >0x5a273300würde um eine Mikrosekunde verschoben sein.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben


4

Tcl / Tk , 135 Bytes

Muss in der interaktiven Shell ausgeführt werden

gri [can .c -bg #FFF]
lmap C {"52 2 82 112" "2 42 182 72"} {.c cr r $C -f #003580 -w 0}
if [clock se]>1512518520 {.c cr t 19 9 -te 100}

Vor dem 06.12.2017, 02:00 Uhr GMT

Bildbeschreibung hier eingeben

Nach dem 06.12.2017, 02:00 Uhr GMT

Bildbeschreibung hier eingeben


4

Java 342 368 361 321 317 (299 + 18) Bytes

Golf gespielt

import java.awt.*;()->new Frame(){{setBackground(Color.WHITE);setUndecorated(0<1);setSize(180,110);setVisible(0<1);}public void paint(Graphics g){g.setColor(new Color(0,53,128));g.fillRect(50,0,30,110);g.fillRect(0,40,180,30);g.setColor(Color.BLACK);if(System.currentTimeMillis()>15125112e5)g.drawString("100",9,9);}}

Ungolfed

import java.awt.*;
() -> new Frame() {
    {
        setBackground(Color.WHITE);                     //Color Objects ARE just RGB values
        setUndecorated(0 < 1);                          //Get's ride of title bar
        setSize(180, 110);             
        setVisible(0 < 1);
    }
    public void paint(Graphics g) {
        g.setColor(new Color(0, 53, 128));              //The special blue color
        g.fillRect(50, 0, 30, 110);
        g.fillRect(0, 40, 180, 30);
        g.setColor(Color.BLACK);
        if (System.currentTimeMillis() > 15125112e5)    //Time Condition
            g.drawString("100", 9, 9);
    }

Ergebnis

Finnland

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 .


1
@jfhcs: Nun, leider waren das die Regeln. Und ... das ist Java.
Antti29

1
Ah ich sehe. Ich werde meine Antwort aktualisieren. Ich muss die Regeln falsch interpretiert haben.
4.

1
Sie können die ersetzen trues mit 1>0, argsmit a, und die Räume um entfernen können =bei P j = new...zu sparen ein paar Bytes.
Justin Mariner

1
342 Bytes (324 Bytes + 18 Bytes für import java.awt.*;), einschließlich der Bedingung.
Olivier Grégoire

1
Ihre aktuelle Antwort weist mehrere Fehler auf, die sie ungültig machen: 1. Es gibt überhaupt keine import. 2. Die Variablennamen werden nicht gekürzt: argsKann auf reduziert werden a. 3. Der Eintrag enthält noch optionale Leerzeichen. 4. Es gibt keinen bedingten Ausdruck von "100".
Olivier Grégoire

3

vim, 147

Diese Herausforderung gefällt mir sehr gut ☺. © ist Flucht.

sy on
set ft=c
hi Normal ctermfg=4 ctermbg=7
hi Number ctermfg=0 ctermbg=7
norm 90i ©26|15r█Y40pMVr█Y14Pk
if localtime()>1512511199
norm R100 

Bildbeschreibung hier eingeben


3

Bash und Imagemagick, 135

((`date +%s`>1512511199))&&x=100
convert -size 150x80 xc: -background \#003580 -splice 30x30+50+40 -draw "fill black text 9,9 '$x'" x:

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben


1
Bessere Nutzung arithmetische Auswertung: ((`date +%s`>=1512511200))&&x=100. Beachten Sie, dass ich die einzelnen Anführungszeichen innerhalb des -drawParameters verschoben habe , wo sie nicht maskiert werden müssen.
Manatwork

2

Imperativ Tampio , 239 Bytes (nicht konkurrierend)

Kun iso sivu avautuu,se näyttää tekstin"<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"ja,jos nykyinen aika millisekunteina on suurempi kuin 1512511200000,niin se näyttää tekstin"<text y=19>100".

Kun iso sivu avautuu , se näyttää tekstin "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"ja , jos nykyinen aika millisekunteina on suurempi kuin 1512511200000 , niin se näyttää tekstin"<text y=19>100" .

Online Version

Übersetzung:

Wenn die große Seite geöffnet wird, wird der Text "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"angezeigt. Wenn die aktuelle Zeit in Millisekunden größer als ist 1512511200000, wird der Text angezeigt "<text y=19>100".

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.


Das ist eher so!
Antti29

2

Bash, 198

p()(printf "%-$1b$3" "\e[$2m")
r()(for i in `seq $1`;{ $2;})
a()(p 31 107
p 20 44
p 56 30\;107 "${1:-   }"
p 0 0 '
')
b()(p 95 44
p 0 0 '
')
r 20 a
r 15 b
r 19 a
((`date +%s`>1512511199))&&a 100||a

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben


1

HTML + CSS + Javascript, 339 Bytes

<style>#f{width:180px;height:110px;position:relative}.b{background-color:#003580;position:absolute}.v{left:27.78%;width:16.67%;height:100%}.h{top:36.36%;height:27.27%;width:100%}</style><div id="f"><div class="b v"></div><div class="b h"></div></div><script>if(Date.now()>1512525600000)document.getElementById('f').innerHTML+=100;</script>

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.

<style>.b{background-color:#003580;position:absolute}.v{left:27.78%;width:16.67%;height:100%}.h{top:36.36%;height:27.27%;width:100%}</style><div class="b v"></div><div class="b h"></div><script>if(Date.now()>1512525600000)document.body.innerHTML+=100;</script>

Sie können in beiden Lösungen eine 0 vom Zeitstempel entfernen, um die "100" anzuzeigen.


1

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, thda die blauen Teile. Getestet auf IE und Chrome, auch bei mee.fi -site.

<body onload="h=[4,3,4];w=[5,3,10];m=50;s='<style>*{border-spacing:0;padding:0;}th{background:#003580;}</style><table>';for(y in h){s+='<tr height='+(m*h[y])+'>';for(x in w){c=(y==1||x==1)?'h':'d';s+='<t'+c+' width='+(m*w[x])+'>'+(x+y<1&&Date.now()>15125112e5?'100':'')+'</t'+c+'>';}s+='</tr>';}s+='</table>';document.write(s);">

Könnte man mit reinem Javascript (Einfügen in die Konsole) weiter Golf spielen ...?
Diynevala

1

Perl 5, 139 Bytes

($w,$b,$r)=map"\e[${_}m","47;30",44,0;$_=$w.$"x25 .$b.$"x15 .$w.$"x50 .$r.$/;$_=$_ x12 .s/7/4/gr x9 .$_ x12;time<1512511200||s/   /100/;say

ins Leben gerufen werden

perl -E '($w,$b,$r)=map"\e[${_}m","47;30",44,0;$_=$w.$"x25 .$b.$"x15 .$w.$"x50 .$r.$/;$_=$_ x12 .s/7/4/gr x9 .$_ x12;time<1512511200||s/   /100/;say'

Erfassung

Verhältnis wurde aufgrund des Zeichenverhältnisses Höhe / Breite = 1,66 (5/3) geändert, ansonsten mit ursprünglichem Verhältnis:

($w,$b,$r)=map"\e[${_}m","47;30",44,0;$_=$w.$"x25 .$b.$"x15 .$w.$"x50 .$r.$/;$_=$_ x20 .s/7/4/gr x15 .$_ x20;time<1512511200||s/   /100/;say

ursprüngliches Verhältnis


1

Schläger 6.10 mit 2HTP / Image, 202 Bytes

(let*([w 180][h 110][p(λ(w h x y o)(place-image(rectangle w h'solid(color 0 53 128))x y o))][b(p w 30 90 55(p 30 h 60 55(empty-scene w h)))])(if(>(current-seconds)1512536400)(overlay(text"100"9'b)b)b))

Ungolfed:

(let* (
       [flag-width 180]
       [flag-height 110]
       [place-rect (λ (width height x-pos y-pos other-pos)
                     (place-image
                      (rectangle width height 'solid (color 0 53 128))
                      x-pos y-pos other-pos))]
       [flag (place-rect
              flag-width 30 90 55
              (place-rect
               30 flag-height 60 55
               (empty-scene flag-width flag-height)))]
       )
  (if (> (current-seconds) 1512536400)  ; If Finland is 100 years old
      (overlay (text "100" 9 'b) flag)  ; add "100" to the flag
      flag))                            ; otherwise just the flag

mit text Bildbeschreibung hier eingeben


Du bist der erste, der das 100auf ein blaues Teil setzt - hast es fast verpasst.
Antti29

1

Kleines Basic , 300 Bytes

Ein Skript, das keine Ein- und Ausgaben für das TextWindowObjekt vornimmt.

GraphicsWindow.BrushColor=0
If Clock.Year*10000+Clock.Month*100+Clock.Day>=20171206Then
GraphicsWindow.DrawText(0,0,"100")
EndIf
GraphicsWindow.Height=275
GraphicsWindow.Width=450
GraphicsWindow.BrushColor="#003580
GraphicsWindow.FillRectangle(0,100,450,75)
GraphicsWindow.FillRectangle(125,0,75,275)

Probieren Sie es bei SmallBasic.com! Benötigt IE / Silverlight

Ausgabe

Dargestellt nach dem 100. Unabhängigkeitstag Finnlands. Ausgabe


0

Der zuvor erstellte Code wurde auf Folgendes reduziert:

HTML, CSS und JavaScript, 1599 Bytes

var d1=new Date(1917,11,6);
var d2=new Date();
var difference = d2.getFullYear()-d1.getFullYear();
if(difference===100 && d2.getDate()===d1.getDate() && d2.getMonth()===d1.getMonth()) {
	document.getElementById("bottom-right").innerHTML=d2.getFullYear()-d1.getFullYear();
}
#flag{
background-color: #FFF;
width: 540px;
height: 330px;
border: 6px solid gray;
margin: 10% auto;
}
.surround{
background-color: #003580;
width: 90px;
height: 120px;
margin: 0px 300px 0px 150px;
}
.middle{
background-color: rgb(0, 53, 128);
width: 540px;
height: 90px;
}
<head>
<title>Happy Birthday, Finland</title>
<link rel="stylesheet" type="text/css" href="decor.css">
</head>
<body>
<div id="flag"><div class="surround"></div><div class="middle"></div><div class="surround"></div></div>
<script type="text/javascript" src="date.js"></script>
</body>


Nun, zu meiner Verteidigung würde ich sagen, dass dies mein erstes Mal ist. Ich werde versuchen, in Zukunft kürzeren Code zu erstellen.
Raunaq Koppikar

Wie Stephen bereits sagte, ist dies ein Code-Golf, und deshalb sollte Ihr Programm darauf abzielen, so kurz wie möglich zu sein. Bitte denken Sie daran, dass Ihr Programm, wenn Sie nicht Golf spielen (dh es so lassen wie es ist), gelöscht werden kann, da es derzeit kein ernstzunehmender Konkurrent ist. Endlich willkommen auf der Seite!
Caird Coinheringaahing

Sicher. Wird auf jeden Fall so schnell wie möglich Golf spielen
Raunaq Koppikar

Bearbeitet wie vorgeschlagen
Raunaq Koppikar

Sie können auch Einrückungen in allen entfernen und Zeilenumbrüche in CSS und HTML entfernen. Außerdem können Sie Leerzeichen zwischen Symbolen in JS (wie ===und 100) entfernen .
NoOneIsHere

0

HTML + JavaScript, 247 Bytes

<table cellspacing=0 cellpadding=0><tr height=40><td width=50><td width=30 bgcolor=003580><td width=100><tr height=30><td colspan=3 bgcolor=003580><tr height=40><td><td bgcolor=003580><td><script>Date.now()>15125112e5&&document.write(100)</script>


0

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.

document.write(`${Date.now()>1512525600000?'<i style=position:fixed>100</i>':''}<img src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAABuAQMAAAC0pqs4AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX///8ANYAaS5LoAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EMBRcAAPqLykEAAAAxSURBVEjHY2AAA/v///8zYAGj4qPio+KDWfw/VvBhVHxUfEiKD7b8NSo+Kj4qTrQ4AHKtsHq12fKCAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTEyLTA1VDIzOjAwOjAwKzAxOjAwkDJOKAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0xMi0wNVQyMzowMDowMCswMTowMOFv9pQAAAAASUVORK5CYI>`)


Keine Notwendigkeit für Klammern innerhalb der Interpolation ( ${(…)}${…}); 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).
Manatwork
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.