Wszystkiego najlepszego, Finlandia!


37

Wprowadzenie

Jak wiadomo, w 2017 r. Finlandia świętuje 100 lat niepodległości. Z tej okazji Twoim zadaniem jest wyprodukowanie fińskiej flagi dla przyjemności każdego.

Wyzwanie

Utwórz program lub funkcję, która tworzy flagę Finlandii (szara ramka służy wyłącznie do celów prezentacji):

Flaga Finlandii

Specyfikacja flagi

  • Stosunek flagi wynosi 18:11, przy krzyżu 3grubości jednostek, co daje zestaw współczynników poziomych 5:3:10i zestaw współczynników pionowych wynoszących 4:3:4.
  • Obraz musi mieć co najmniej 180 x 110piksele lub, w przypadku grafiki ASCII, 90 x 55znaki.
  • Nie ma oficjalnego koloru RGB dla niebieskiego, ale użyj najbliższego przybliżenia (0, 53, 128). Jeśli twój system nie obsługuje wartości RGB, użyj blue.
  • Dla koloru białego użyj RGB (255, 255, 255)lub white.

Nie tak szybko

Ponieważ narysowanie fińskiej flagi narodowej byłoby prostsze niż zeszłoroczne wyzwanie islandzkie , będziemy musieli nieco zwiększyć trudność. Biorąc pod uwagę, że Dzień Niepodległości Finlandii przypada na 6 grudnia, liczba dziesiętna 100musi pojawić się gdzieś na fladze, gdy data w Finlandii ( UTC + 02: 00 ) jest 2017-12-06późniejsza (kod nie powinien zakładać, że maszyna, na której działa, jest ustawiona na konkretna strefa czasowa). Przed datą nie może tam być numeru. Numer musi być wydrukowany na czarno (RGB (0, 0, 0)lub black), ale jego położenie i parametry czcionki zależą od Ciebie.

Przykład takiego renderowania (ponownie zignoruj ​​ramkę):

Flaga Finlandii ze 100

Do celów testowych dobrze byłoby dołączyć dwie dodatkowe wersje rozwiązania, jedną z ustaloną datą w przeszłości, a drugą w przyszłości.

Zasady

Standardowe luki są zabronione, podobnie jak wbudowane obrazy / biblioteki flag. Ponadto twój kod nie może przyjmować żadnych danych wejściowych.

Finowie nie lubią drobnych rozmów, a to jest , więc nie marnujcie znaków!


Czy powinniśmy po prostu używać przestrzeni, a # w przypadku sztuki ASCII ? A następnie wstawić 100gdzieś postacie ?
Adám

1
Czy możemy przyjąć datę w Finlandii jako dane wejściowe dla systemów, które nie mają wewnętrznego zegara ściennego lub nie wdrażają strefy czasowej? Od czasu do czasu zamieszczam odpowiedzi w zestawie GFA-Basic (Atari ST, bez strefy czasowej) lub CP-1610 (Intellivision, brak daty / godziny) i od czasu do czasu mamy odpowiedzi na innych platformach starej szkoły, które zwykle są całkiem nieźle rysuje takie rzeczy, ale wydaje się, że został tutaj zdyskwalifikowany z powodu problemu z datą.
Arnauld,

1
@Arnauld: Kurcze, nigdy nie sądziłem, że ktokolwiek użyje takich systemów. Doceniam twoją trudną sytuację, ale czy postawi to innych w niekorzystnej sytuacji? Myślę, że pozwolenie na wejście pozwoliłoby ci na proste porównanie liczb całkowitych. Czy nie konkurowałoby zgłoszenie bez aspektu czasowego?
Antti29

1
@ Antti29 Szczerze mówiąc, nie mogę wymyślić żadnego dobrego rozwiązania i jest już za późno na jakąkolwiek poważną aktualizację zasad. Chyba że ktoś przyjdzie z naprawdę satysfakcjonującą sugestią, myślę, że systemy te po prostu nie mogą tu konkurować. (Widziałem wyzwanie w piaskownicy i nie myślałem o tym. Mój zły.)
Arnauld

Odpowiedzi:


24

C (Windows), 361 bajtów

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

Rozwinięty:

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

Wydajność:

Wyjście, gdy UTC time >= 2017-12-05-22-00:

Dodaj następujący kod w kodzie po, d=gmtime(&n);aby go wypróbować:

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

13
Śliczne nazwy zmiennych!
Adám,

16

PHP + SVG (HTML5), 147 137 123 bajtów

Kod SVG autorstwa Neila

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';

Aktualizacja: Dzięki Shaggy za pomoc w zaoszczędzeniu 10 bajtów.

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

Aktualizacja 2: Inteligentny pomysł Ismaela Miguela , dzięki za uratowanie 14 bajtów

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

Normalna

normalna

Po 6 grudnia +2 godziny

po 6 grudnia - +2 godziny


Więc time()daje UTC?
Adám

Kiedy 1512525600?
Adám

1512525600ma wartość 2017-12-06T02:00:00+00:00 in ISO 8601@ Adám i tak, time () jest niezależny od strefy czasowej.
th3pirat3

12

Röda , 252 250 bajtów

{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>`]}

Wypróbuj online!


25
Odwaga! Rozwiązałeś fińskie wyzwanie językiem o szwedzkiej nazwie.
Antti29,

1
@Arthur Nazwa pochodzi od szwedzkiego słowa, nie ma takiego słowa w języku fińskim. Git zawiera fiński, ponieważ jestem fińskojęzyczny.
fergusq

1
@Arthur: Obawiam się, że będziesz musiał zagłębić się w fiński sposób myślenia, aby w pełni docenić mój komentarz :)
Antti29,

1
@fergusq Cóż, jeśli pochodzi od człowieka, który faktycznie nazwał język, to chyba nie ma wyższego autorytetu. Jednak nawet mając świadomość, że „röda” nie jest słowem fińskim, utrzymuję, że mój poprzedni komentarz był wiarygodny. Nazwy języków nie muszą być rzeczywistymi słowami. Ponadto, chociaż nie jestem w środku, jestem w pełni świadomy antagonizmu, jaki Finowie mają wobec Szwedów, z historią okupacji, a szwedzki jest obowiązkowy w szkołach jako jedno z kilku stałych przypomnień.
Arthur

1
@ PaŭloEbermann: Niestety.
Antti29,

11

C #, 407 400 277 bajtów

Dziwne, jak ForegroundColor =0to dozwolone

Zaoszczędzono 1 bajt dzięki TuukkaX

Zaoszczędził 67 bajtów dzięki Adamowi

()=>{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);}}

niepoddane testowaniu:

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

do testowania 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 = 0jest dozwolone, ponieważ literał 0można przekształcić w dowolny typ wyliczenia, jak zapisano w specyfikacji C # .
Joey,

9

Mathematica, 129 bajtów

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


przed… po…
wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj
zawsze możesz go przetestować na Wolfram Sandbox
(wklej kod i wciśnij Shift-Enter)


Kiedy 3721507200?
Adám

@ Adám AbsolutimeTime podaje całkowitą liczbę sekund od początku 1 stycznia 1900 r.
J42161217

@Jenny_mathy 1 stycznia 1900 o której strefie czasowej?
Daffy,

@Daffy of utc +02: 00
J42161217,

9

Python 2 , 247 246 230 210 189 bajtów

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

Wypróbuj online!

Drukuje obraz .ppm:

Normalna flaga

Finlandia

Flaga ze 100

Finlandia 100


Można datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)zastąpić datetime.utcnow()>=datetime(2017,12,05,22,0,0)lub coś podobnego?
Adám

Użyj time.gmtimezamiast tego do porównań krotek (patrz moja odpowiedź)!
Antti Haapala,

[time.time ()> 1512514800]
dieter

7

Python 3, 143 141 135 bajtów

Używa znaków ucieczki ANSI dla kolorów, używa pięciu spacji lub „100” jako kolorowego sznurka, więc nie muszę specjalnie drukować „100” gdzieś na fladze. Długość 5 z powodu szerokości, ponieważ 90/5 == 90//5. Używany ciąg jest definiowany w rzędzie 1. Następnie iterujemy 55 zaokrągleń (wysokość), przy każdej iteracji vustawiany jest ciąg znaków w kolorze [Niebieski, BrightWhite], a wybrany indeks ma wartość logiczną row<20 or r>34. Ponownie mnożymy ten wynik przez 5 (wymiary: 25:15:50, więc całkowita szerokość wynosi 90). Następnie drukujemy, v + Blue + Blue + Blue + v + v + Blackgdzie vjest niebieski lub jasny biały. Aby wyjaśnić drukowanie: szerokość vwynosi 25 znaków, szerokość niebieskiego ( e%44*3) wynosi 15, a szerokość v*2wynosi 50.25+15+50ma szerokość 90 i odpowiada wymiarom wymaganym w zadaniu! Całkiem niechlujne podsumowanie, ale myślę, że to lepsze niż nic.

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
Witamy na stronie!
caird coinheringaahing

2
Witamy w PPCG! Dodałem flagę językową do twojej odpowiedzi i sugeruję, abyś dodał podstawowy opis działania twojego programu - ale poza tym świetna pierwsza odpowiedź :)
Taylor Scott

2
@TaylorScott Will do! I dziękuję, czaiłem się tutaj przez rok lub dwa, ale nigdy niczego nie zgłosiłem. Po prostu nie mogłem się oprzeć, ponieważ Finlandia skończy 100 lat!
FatalError

7

Processing.org / Java 191 188 bajtów

-3 bajty dzięki 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);}

Przed po


>15125255999999Lmoże być>=15125256e6
Kevin Cruijssen

@KevinCruijssen, być może można go skrócić, ale 15125256e6 to 15125255815168, czyli o 37 godzin za późno
PrincePolka

15125256e6D działa, dzięki
PrincePolka

Hmm, 15125256e6czy 15125256000000testuję go w Javie 8. Ale nie znam Processing.org, więc może jest nieco inaczej lub używa innej wersji? Oto TIO z kilkoma podstawowymi testami 15125256e6sprawdzającymi, czy działa w Javie 8. Ale cieszę się, że Dto naprawia. Cieszę się, że mogłem pomóc. :)
Kevin Cruijssen,

7

Excel VBA, 120 118 117 bajtów

Anonimowa funkcja bezpośredniego okna VBE, która nie pobiera żadnych danych wejściowych i wyjściowych pod flagą Finlandii, a jeśli Finlandia ma więcej niż 100 lat, ma 100tę flagę. Odbywa się to w odniesieniu do Wielkanocnej Strefy Czasowej w Stanach Zjednoczonych, ponieważ Excel lub Excel VBA nie mogą określić strefy czasowej bez dodatków lub dostępu do Internetu.

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

Wydajność

Jeśli Finlandia ma mniej niż 100 lat

Młoda fińska

Jeśli Finlandia ma więcej niż 100 lat

Starofiński

-2 Bajt na zmianę If #12/5/17 19:00#<=Now Then[B2]=100naIf Now>=#12/5/17 19:0#Then[B2]=100

-1 bajt do użycia Cellszamiast[A1:R11]


2
Kto by pomyślał, że stary VBA może to zrobić. Doskonały.
Floris,

3
@Floris, zdałem sobie sprawę, że jeśli chodzi o piksele, Excel VBA może robić niesamowite rzeczy. : D
Taylor Scott,

Przypomina mi się napisanie czegoś w prekursorze VBA (zwariowany język makr, który został napisany w komórkach arkusza Excela, jedna linia na komórkę), który zrobił coś podobnego (utwórz wykres intensywności 2D funkcji, którą badałem). To musiał być 1991 rok. Dzięki za wspomnienia.
Floris,

1
@Floris dobrze, szkoda - ale dobrze wiedzieć, że ktoś inny wie, czym są :)
Taylor Scott

1
I pomyśl o tym - było coś przed 4.0 ... Pamiętam, że denerwowałem się, gdy wszystko się zepsuło. Jak już wiele razy byłem. Mistrzowie niezgodnych wstecz.
Floris,

5

MATLAB, 133 130 123 bajtów

3 10 bajtów szabli dzięki za @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

Wykorzystuje [0, 51, 128]to kolor niebieski. Rozmiar obrazu wynosi 180 x 110 pikseli.

Przykładowy przebieg:

wprowadź opis zdjęcia tutaj

Przykładowy przebieg z tekstem (zmiana 737035na 0w kodzie, aby tekst był wyświetlany każdego dnia):

wprowadź opis zdjęcia tutaj


4

JavaScript (ES5) + SVG (HTML5), 189 179 bajtów

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, aby pokazać, że wymagania dotyczące kolorów są spełnione.) Edycja: Zapisano 10 bajtów dzięki @Shaggy. Wyjścia:

<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


Jak to radzi sobie z przesunięciem strefy czasowej, gdy jest uruchomiony gdzieś indziej niż w UTC + 2?
Adám,

@ Adám Date.now()jest w UTC, a ja porównuję z wartością UTC wynoszącą 2017/12/06 00:00:00 UTC+2.
Neil,

Czy mogę używać kodu SVG w moim fragmencie php?
th3pirat3

2
@ Adám Już ci mówiłem?
Neil,

1
Wymień <path></path>się <path/>zaoszczędzić kilka bajtów.
Kudłaty

4

Python 3 z poduszką, 213 212 211 znaków (uniksowy) i 217 216 znaków (przenośny)

To jest wersja uniksowa. Po opublikowaniu zauważyłem, że czas, który upłynął, time()niekoniecznie ma swoją epokę 1 stycznia 1970 r., Więc niekoniecznie jest przenośny.

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

To jest przenośny kod, 4 bajty więcej, używa gmtimez porównaniem krotek, więc powinien działać niezawodnie również w systemie Windows.

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

Obrazy są wyświetlane w oknie. Naprawdę trudno jest sprawić, by zużywał mniej postaci. Nawet time.timezwroty floattak >0x5a273299nie byłyby tak poprawne lub >0x5a273300byłyby wyłączone o mikrosekundę.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj


4

Tcl / Tk , 135 bajtów

Musi być uruchomiony w interaktywnej powłoce

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}

Przed 2017/12/06 02:00 GMT

wprowadź opis zdjęcia tutaj

Po 2017/12/06 02:00 GMT

wprowadź opis zdjęcia tutaj


4

Java 342 368 361 321 317 (299 + 18) bajtów

Grał w golfa

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

Bez golfa

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

Wynik

Finlandia

Kredyty

40 bajtów zapisanych przez Oliviera Grégoire'a na użycie lambda.
4 bajty zapisane przez Kevina Cruijssena na formatowanie długie.
2 bajty zapisane przez użytkownika902383 na potrzeby formatowania szesnastkowego.


1
@jfhcs: Cóż, niestety takie były zasady. I ... to jest Java.
Antti29,

1
O, rozumiem. Zaktualizuję swoją odpowiedź. Musiałem źle zinterpretować zasady.
jfh

1
Można wymienić truesz 1>0, argsz a, a może usunąć przestrzenie wokół =w P j = new...zaoszczędzić kilka bajtów.
Justin Mariner,

1
342 bajty (324 bajty + 18 bajtów na import java.awt.*;), z uwzględnieniem warunku.
Olivier Grégoire,

1
Twoja obecna odpowiedź ma kilka wad, które czynią ją nieważną: 1. nie ma jej importwcale. 2. Nazwy zmiennych nie są skracane: argsmożna je zredukować do a. 3. nadal są opcjonalne spacje, które są zawarte we wpisie. 4. nie ma warunkowego wydruku „100”.
Olivier Grégoire,

3

vim, 147

Naprawdę podoba mi się to wyzwanie ☺. © to ucieczka.

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 

wprowadź opis zdjęcia tutaj


3

bash and 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:

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj


1
Lepiej wykorzystać ocenę arytmetyczną: ((`date +%s`>=1512511200))&&x=100. Zauważ, że przeniosłem pojedyncze cudzysłowy do -drawparametru, gdzie nie wymagają one zmiany znaczenia.
manatwork

2

Tryb imperatywny , 239 bajtów (niekonkurencyjny)

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

Wersja online

Tłumaczenie:

Po otwarciu dużej strony wyświetli tekst, "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"a jeśli bieżący czas w milisekundach jest większy niż 1512511200000, wyświetli tekst "<text y=19>100".

SVG został zaczerpnięty z tej odpowiedzi przez th3pirat3 (i najwyraźniej Neil).

Ten program został napisany w nowej wersji Tampio, nad którą pracowałem. Ci z was, którzy znają fiński, widzą, że jest prawie czytelny. Oznacziłem odpowiedź jako niekonkurującą, ponieważ ten język został opublikowany po tym wyzwaniu.

Aby uruchomić ten program, przejdź do powyższej wersji online zawierającej skompilowaną wersję JS programu lub pobierz kompilator ze strony Github . Aby skompilować program, uruchom python3 tampio.py -p program.itp >program.html.

Tampio pod żadnym względem nie jest językiem golfowym, ale ze względu na lepszy kod svg faktycznie pokonał Rödę ... Byłem trochę zaskoczony.


Tak już lepiej!
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

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj


1

HTML + CSS + JavaScript, 339 bajtów

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

Oto to samo rozwiązanie skrócone do 260 bajtów, które zakłada, że ​​twój port ma odpowiedni współczynnik 18:11.

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

Możesz zerwać 0 ze znacznika czasu w dowolnym z rozwiązań, aby wyświetlić „100”.


1

HTML + JavaScript, 329 bajtów

Bezwstydnie ukradłem część sprawdzającą datę @jstnthms. Zasadniczo piszę po prostu surową tabelę html z poprawnymi stosunkami wierszy / kolumn, thbędącymi niebieskimi częściami. Testowane na IE i Chrome, również w 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);">

Czy można dalej grać w golfa za pomocą czystego javascript (wklej na konsolę) ...?
diynevala,

1

Perl 5, 139 bajtów

($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

zostanie uruchomiona

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'

zdobyć

współczynnik został zmieniony z powodu wysokości / szerokości znaku = 1,66 (5/3), w przeciwnym razie oryginalny współczynnik:

($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

oryginalny stosunek


1

Rakieta 6.10 z 2htdp / obraz, 202 bajty

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

Nie golfowany:

(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

z tekstem wprowadź opis zdjęcia tutaj


Jesteś pierwszym, który umieścił 100niebieską część - prawie ją przegapiłem.
Antti29

1

Mały podstawowy , 300 bajtów

Skrypt, który nie przyjmuje danych wejściowych i wyjściowych do TextWindowobiektu.

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)

Wypróbuj na SmallBasic.com! Wymaga IE / Silverlight

Wydajność

Pokazany po 100. dniu niepodległości Finlandii. Wydajność


0

poprzednio utworzony kod został zakodowany w następujący sposób:

HTML, CSS i JavaScript, 1599 bajtów

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>


W mojej obronie powiedziałbym, że to mój pierwszy raz. W przyszłości spróbuję skrócić kod.
Raunaq Koppikar,

Jak już powiedział Stephen, jest to golf golfowy, dlatego twój program powinien być możliwie jak najkrótszy. Należy pamiętać, że jeśli nie grasz w golfa w swoim programie (tzn. Pozostawiasz go takim, jaki jest), może zostać usunięty, ponieważ obecnie nie jest poważnym przeciwnikiem. Wreszcie, witamy na stronie!
caird coinheringaahing

Pewnie. Z pewnością dostanie to jak najszybciej w golfa
Raunaq Koppikar,

Edytowano zgodnie z sugestią
Raunaq Koppikar,

Możesz także usunąć wcięcia we wszystkich i usunąć znaki nowej linii w CSS i HTML. Dodatkowo możesz usunąć spacje między symbolami w JS (jak ===i 100).
NoOneIsHere

0

HTML + JavaScript, 247 bajtów

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

Postanowiłem spróbować użyć obrazu Base64, aby zobaczyć, jak krótko mogę go uzyskać. Nie zwycięzca, ale mimo to interesujący.

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


Nie ma potrzeby stosowania nawiasów w interpolacji ( ${(…)}${…}); nie ma potrzeby podwójnego cudzysłowu wokół tych wartości atrybutów HTML; chociaż nieważne, w większości przypadków można odciąć dopełnienie łańcuchów kodowanych base64 znakami równości (Firefox z pewnością nie ma problemu z ich odkodowaniem).
manatwork
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.