Doğum günün kutlu olsun, Finlandiya!


37

Giriş

Bilindiği gibi, 2017'de Finlandiya 100 yıllık bağımsızlığını kutluyor. Bu vesileyle, herkesin zevkine uygun bir Fin bayrağı hazırlamak sizin işiniz .

Meydan okuma

Finlandiya bayrağını üreten bir program veya işlev oluşturun (gri kenarlık yalnızca sunum amaçlıdır):

Finlandiya bayrağı

Bayrak özellikleri

  • Bayrağın oranı 18:11, çapraz 3birimler kalın olacak şekilde, yatay bir oran kümesi 5:3:10ve dikey bir oran kümesi vererekdir 4:3:4.
  • Resim en az 180 x 110piksel boyutunda veya ASCII resminde, 90 x 55karakter olmalı .
  • Mavi için resmi bir RGB rengi yoktur, ancak en yakın yaklaşımını kullanın (0, 53, 128). Sisteminiz RGB değerlerini desteklemiyorsa, kullanın blue.
  • Beyaz renk için RGB (255, 255, 255)veya kullanın white.

Çok hızlı değil

Finlandiya ulusal bayrağını çizmek, geçen yılın İzlandaca mücadelesinden daha basit olacağından , zorluğu biraz arttırmak zorunda kalacağız. Olduğu göz önüne alındığında Finlandiya'nın Bağımsızlık Günü 6 Aralık'ta ise, ondalık sayı 100Finlandiya (tarih zaman bayrağına yerde yer almalıdır UTC + 02: 00 ) 'dir 2017-12-06veya sonrası (kodunuzu üzerinde çalıştığı makine a ayarlanmış olduğunu düşünmemelidir belirli bir saat dilimi). Tarihten önce, numara orada olmamalıdır. Numara siyah (RGB (0, 0, 0)veya black) olarak yazdırılmalıdır, ancak yerleşim ve yazı tipi parametreleri size bağlıdır.

Böyle bir oluşturma örneği (yine, sınırı yoksay):

Üzerinde 100 olan Finlandiya bayrağı

Sınama amacıyla, biri geçmişte, biri de diğeri sabit bir tarihe sahip olan iki ek sürümün eklenmesi iyi olacaktır.

kurallar

Yerleşik bayrak görüntüleri / kütüphaneleri gibi standart boşluklar yasaktır. Ayrıca, kodunuz herhangi bir giriş yapmamalıdır.

Finler küçük konuşmalardan hoşlanmazlar ve bu , bu yüzden karakterleri boşa harcamayın!


Sadece boşluk kullanmalı mıyız ve # ASCII sanatı durumunda mı? Ve sonra karakterleri bir 100yere eklemek ?
Adám

1
Finlandiya'da tarihi bir duvar saati olmayan ya da saat dilimini uygulamayan sistemler için girdi olarak alabilir miyiz? Zaman zaman GFA-Basic’te (Atari ST, saat dilimi yok) veya CP-1610 meclisinde (Intellivision, tarih / saat yok) cevaplar gönderiyorum ve zaman zaman genellikle bazı eski okul platformlarında cevaplarımız var. Böyle şeyler çizmede oldukça başarılı, ancak tarih sorunu yüzünden burada diskalifiye olmuş gibi görünüyor.
Arnauld,

1
@Arnauld: Tanrım, kimsenin böyle sistemleri kullanacağını hiç düşünmedim. Çıkmazını takdir ediyorum ama bu başkalarını dezavantajlı bir durumda bırakacak mı? Bence girişe izin vermek sizi basit bir tamsayı karşılaştırmasıyla bırakacaktır. Zaman yönü olmadan yarışmacı olmayan bir giriş söz konusu olmaz mıydı?
Antti29

1
@ Antti29 Dürüst olmak gerekirse, herhangi bir iyi çözüm düşünemiyorum ve kurallarda büyük bir güncelleme yapmak için çok geç. Birisi gerçekten tatmin edici bir öneriyle gelmezse, bu sistemlerin burada rekabet edemeyeceğini düşünüyorum. (Kum havuzundaki mücadeleyi gördüm ve bunun hakkında düşünmedim. Benim
kötüm

Yanıtlar:


24

C (Windows), 361 bayt

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

unrolled:

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

Çıktı:

Çıkış zamanı UTC time >= 2017-12-05-22-00:

Aşağıdakileri d=gmtime(&n);denedikten sonra koda ekleyin :

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

13
Sevimli değişken isimleri!
Adám

16

PHP + SVG (HTML5), 147 137 123 bayt

Neil tarafından SVG kodu

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

Güncelleme: 10 bayt kurtarmama yardım ettiğin için Shaggy'ye teşekkürler .

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

Güncelleme 2: Ismael Miguel'den akıllı fikir , 14 bayt kaydettiğiniz için teşekkürler

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

Normal

normal

6 Aralık + 2 saat sonra

6 Aralıktan sonra - +2 saat


Peki time()UTC verir mi?
Adám

Ne zaman 1512525600?
Adám

1512525600olduğu 2017-12-06T02:00:00+00:00 in ISO 8601ADAM @ ve evet, zaman () zaman dilimi bağımsızdır.
th3pirat3

12

Röda , 252 250 bayt

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

Çevrimiçi deneyin!


25
Cömertlik! İsveççe bir dille bir Finlandiya meydan okumasını çözdün.
Antti29

1
@Arthur İsveççe bir kelimenin adını taşıyan, Fince bir kelime yoktur. Git Fince içeriyor çünkü Fince konuşuyorum.
fergusq

1
@Arthur: Korkarım yorumumu takdir etmek için Fin zihniyetine
dalmanız gerekecek

1
@ fergusq Eh, aslında dili adlandıran adamdan geliyorsa, sanırım daha yüksek bir otorite yok. Ancak, "röda" nın Fince bir kelime olmadığı bilgisine rağmen, önceki yorumumun makul olduğunu savunuyorum. Dil isimlerinin gerçek kelimeler olması gerekmez. Ayrıca, içinde olmamasına rağmen, Finlilerin İsveçlilere karşı, meslek geçmişi ve İsveç'te okullarda sürekli olarak hatırlatılması gereken zorunlu hatırlatmalardan biri olduğu yönündeki düşmanlığın farkındayım.
Arthur

1
@ PaŭloEbermann: Maalesef.
Antti29

11

C #, 407 400 277 bayt

Nasıl ForegroundColor =0izin verilir

TuukkaX sayesinde 1 bayt kaydedildi

Adam sayesinde 67 bayt kaydedildi

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

test için bağlanmamış:

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

100 test için:

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 = 0değişmeze 0, C # belirtiminde yazıldığı gibi herhangi bir enum türüne dönüştürülebilir olduğundan izin verilir .
Joey,

9

Mathematica, 129 bayt

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


önce .. sonra ..
görüntü tanımını buraya girin

görüntü tanımını buraya girin
Wolfram Sandbox'ta her zaman test edebilirsiniz
(kodu yapıştırın ve Shift-Enter tuşlarına basın)


Ne zaman 3721507200?
Adám

@ Adám AbsolutimeTime, 1 Ocak 1900’ün başından bu yana toplam saniye sayısını verir
J42161217

@ Jenny_mathy 1 Ocak 1900'de hangi saat dilimi?
Daffy

@Daffy ait 02 utc: 00
J42161217

9

Piton 2 , 247 246 230 210 189 bayt

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

Çevrimiçi deneyin!

Bir .ppm resmi yazdırır:

Normal bayrak

Finlandiya

100 ile bayrak

Finland100


Can datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)ile değiştirilebilir datetime.utcnow()>=datetime(2017,12,05,22,0,0)benzer bir şey ya?
Adám

time.gmtimeSonuç karşılaştırmaları için kullanın (cevabımı inceleyin)!
Antti Haapala,

[time.time ()> 1512514800]
dieter

7

Python 3, 143 141 135 bayt

Renkler için ANSI çıkışını kullanır, renkli bir dize olarak beş boşluk veya "100" kullanır, böylece bayrak üzerinde bir yere özel olarak "100" yazmam gerekmez. Uzunluk 5, çünkü genişlik 90/5 == 90//5. Kullanılan dize, satır 1'de tanımlanıyor. Sonra, her bir iterasyonda v[Mavi, BrightWhite] rengine sahip bir dizgeye ayarlanmış ve seçilen dizin boolean olacak şekilde 55 yuvarlak (yükseklik) yineliyoruz row<20 or r>34. Bu sonucu tekrar 5 ile çarpıyoruz (genişlik boyutları: 25:15:50, böylece toplam genişlik 90). Sonra Mavi veya BrightWhite'in v + Blue + Blue + Blue + v + v + Blacknerede volduğunu yazdırırız. Baskıyı netleştirmek için: genişliği v25 karakter, Mavi genişliği ( e%44*3) 15 ve genişliği v*250'dir.25+15+5090 olan ve görevde istenen ölçüleri takip eden! Oldukça dağınık özeti ama sanırım hiç yoktan iyidir.

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
Siteye Hoşgeldiniz!
Caird coinheringaahing

2
PPCG'ye Hoşgeldiniz! Cevabınıza bir dil bayrağı ekledim ve programınızın nasıl çalıştığının temel bir tanımını eklemenizi öneririm - ama aksi takdirde harika ilk cevap :)
Taylor Scott

2
@TaylorScott Yapacak! Ve teşekkür ederim, ben bir iki yıldan beri burada gizleniyordum ama daha önce hiç bir şey göndermedim. Finlandiya 100 yıl döndüğü için dayanamadı!
FatalError,

7

Processing.org / Java 191 188 bayt

KevinCruijssen sayesinde -3 bayt

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

Önce sonra


>15125255999999Lolabilir>=15125256e6
Kevin Cruijssen

@KevinCruijssen belki de kısaltılabilir ama 15125256e6 15125255815168, ki saat 37 de çok geç
PrincePolka

15125256e6D çalışır, teşekkürler
PrincePolka

Hmm, 15125256e6bir 15125256000000ben Java 8'de sınamak Ama Processing.org bilmiyorum belki biraz farklı ya da farklı bir sürümünü kullanıyor var? İşte 15125256e6Java 8'de çalıştığını doğrulamak için bazı temel testler içeren bir TIO . Fakat Ddüzeltmesinden sonra memnunum . Yardımcı olduğuma sevindim. :)
Kevin Cruijssen

7

Excel VBA, 120 118 117 Bayt

Girilmez ve Finlandiya bayrağını çıkartan ve Finlandiya 100bu bayrakta 100 yaşından büyükse anonim VBE acil pencere işlevi . Bu, Amerika Birleşik Devletleri Paskalya Saat Dilimi ile ilgili olarak yapılır, çünkü Excel veya Excel VBA'nın eklentileri olmadan veya internete girmeden saat dilimini belirlemesi mümkün değildir.

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

Çıktı

Finlandiya 100 yaşından küçükse

Genç Fince

Finlandiya 100 yaşından büyükse

Eski Fince

-2 olarak değiştirmek If #12/5/17 19:00#<=Now Then[B2]=100için baytIf Now>=#12/5/17 19:0#Then[B2]=100

-1 Cellsyerine Bayt kullanımı[A1:R11]


2
VBA'nın bunu yapabileceğini kim düşünürdü. Mükemmel.
Floris

3
@ Floris, piksel sanatına gelince, Excel VBA’nın bazı şaşırtıcı şeyler yapabileceğinin farkına vardım . : D
Taylor Scott

Öncüde VBA'ya (Excel sayfasının hücrelerinde yazılan çılgın bir makro dili, hücre başına bir satır) yazdığı, benzer bir şey yapan (çalıştığım bir fonksiyonun 2B yoğunluk grafiğini yarattığım) hatırlattı. Bu 1991 olmalıydı. Anılar için teşekkürler.
Floris

1
@ Floris iyi bir utanç - ama başkasının ne olduğunu bildiğini bilmek güzel :)
Taylor Scott

1
Ve düşünmeye gel - 4.0'dan önce bir şeyler vardı ... Her şey bozulduğunda sinirlendiğimi hatırlıyorum. O zamandan beri defalarca. Geriye dönük uyumlu olmayanların ustaları.
Floris

5

MATLAB, 133 130 123 bayt

3 10 bayt @flawr için sabed!

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

Bu [0, 51, 128]mavi renk için kullanır . Görüntünün boyutu 180 × 110 pikseldir.

Örnek çalışma:

görüntü tanımını buraya girin

Metin ile örnek çalışma (değişen 737035için 0metin herhangi bir gününde gösterilen şekilde kodunda):

görüntü tanımını buraya girin


4

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

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>

(Renk gereksinimlerinin karşılandığını göstermek için HTML.) Düzenleme: @Shaggy sayesinde 10 bayt kaydedildi. Çıktılar:

<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


UTC + 2 dışında bir yerde çalıştırıldığında saat dilimi uzaklığı nasıl işlenir?
Adám

@ Adám Date.now()UTC'de ve UTC'nin değeriyle karşılaştırıyorum 2017/12/06 00:00:00 UTC+2.
Neil

Benim SVG kodunu php snippet'imde kullanmam uygun mu?
th3pirat3

2
@ Adám sana daha önce söyledim mi?
Neil

1
Birkaç byte kaydetmek için <path></path>ile değiştirin <path/>.
Shaggy

4

Yastık ile Python 3, 213 212 211 karakter (Unix) ve 217 216 karakter (Taşınabilir)

Bu Unix sürümüdür. Döndüğüm zamanın time()mutlaka 1 Ocak 1970'te kendi dönemine sahip olmadığını, bu nedenle mutlaka taşınabilir olmadığının farkına vardım .

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

Bu, 4 baytlık portatif koddur, gmtimetuple karşılaştırması ile birlikte kullanılır , böylece Windows'ta da güvenilir şekilde çalışması gerekir.

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

Görüntüler bir pencerede görüntülenir. Daha az karakter tüketmesi gerçekten zor. Hatta time.timebir döner floatböylece >0x5a273299o kadar doğru olmaz, ya >0x5a273300bir mikro kapalı olacaktır.

görüntü tanımını buraya girin

görüntü tanımını buraya girin


4

Tcl / Tk , 135 bayt

Etkileşimli kabukta çalıştırılmalıdır

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}

2017/12 / 06'dan önce 02:00 GMT

görüntü tanımını buraya girin

2017/12 / 06'dan sonra 02:00 GMT

görüntü tanımını buraya girin


4

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

golfed

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

Sonuç

Finlandiya

Kredi

Lambda kullanmak için Olivier Grégoire tarafından kaydedilen 40 bayt . Uzun biçimlendirme için Kevin Cruijssen
tarafından kaydedilen 4 bayt . Hex90 biçimlendirme için user902383 tarafından kaydedilen 2 bayt .


1
@jfhcs: Maalesef kurallar bunlardı. Ve ... bu Java.
Antti29

1
Ah, anlıyorum. Cevabımı güncelleyeceğim. Kuralları yanlış yorumlamış olmalıyım.
jfh

1
Sen yerini alabilir trueile s 1>0, argsile ave çevresinde boşluk kaldırabilirsiniz =de P j = new...birkaç bayt tasarruf etmek.
Justin Mariner,

1
342 bayt (324 bayt + 18 bayt için import java.awt.*;), koşul dahil.
Olivier Grégoire

1
Şu anki yanıtınızda geçersiz kılan birkaç kusur var: 1. Hiç yok import. 2. değişken isimleri kısaltılmamıştır: 'a argsdüşürülebilir a. 3. Girişte hala isteğe bağlı boşluklar vardır. 4. "100" koşullu baskı yoktur.
Olivier Grégoire

3

vim, 147

Bu mücadeleyi gerçekten seviyorum, ☺. © kaçış.

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 

görüntü tanımını buraya girin


3

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

görüntü tanımını buraya girin görüntü tanımını buraya girin


1
Daha aritmetik değerlendirmeyi kullanın: ((`date +%s`>=1512511200))&&x=100. Tek tırnakları, -drawparametre içinde kaçmaya ihtiyaç duymadıkları bir yere taşıdığımı unutmayın .
Manat çalışması

2

Zorunlu Tampio , 239 bayt (yarışmacı olmayan)

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 üzerinde suurempi Kuin 1512511200000 , niin se näyttää tekstin"<text y=19>100" .

Çevrimiçi sürüm

Çeviri:

Büyük sayfa açıldığında, metni gösterecek "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"ve geçerli süre milisaniye cinsinden büyükse 1512511200000, metni gösterecektir "<text y=19>100".

SVG bu cevaptan th3pirat3 (ve görünüşte Neil) tarafından alınmıştır.

Bu program üzerinde çalıştığım Tampio'nun yeni sürümünde yazılmıştır. Fince bilenler bunun neredeyse okunabilir olduğunu görebilirler. Yanıtı rakipsiz olarak işaretledim çünkü bu dil bu zorluğun ardından yayınlandı.

Bu programı çalıştırmak için, ya programın derlenmiş JS sürümünü içeren çevrimiçi sürüme gidin ya da derleyiciyi Github sayfasından indirin . Programı derlemek için çalıştırın python3 tampio.py -p program.itp >program.html.

Tampio herhangi bir önlemle bir golf dili değil, ama daha iyi svg kodu nedeniyle, aslında Röda'yı yendi ... Biraz şaşırmıştım.


Bu daha doğru gibi!
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

görüntü tanımını buraya girin görüntü tanımını buraya girin


1

HTML + CSS + Javascript, 339 bayt

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

Burada, görüntüleme portunuzun uygun 18:11 oranına sahip olduğunu varsayan 260 byte'a kadar kısaltılmış aynı çözüm var.

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

"100" ifadesinin göründüğünü görmek için herhangi bir çözümde zaman damgasından bir 0'ı çıkarabilirsiniz.


1

HTML + Javascript, 329 bayt

Utanmadan tarih kontrol kısmını jstnthms'den çaldım. Temelde ham html tablosunu thmavi satır olmak üzere doğru satır / sütun oranlarıyla yazarım . Mee.fi -site adresinde de IE ve Chrome üzerinde test edilmiştir .

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

Saf javascript (konsoldaki yapıştırma) ile daha fazla golf oynanabilir mi?
diynevala

1

Perl 5, 139 bayt

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

başlatılacak

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'

ele geçirmek

oran, orijinal oranla, yükseklik / genişlik = 1.66 (5/3) karakter oranı nedeniyle değiştirildi:

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

orijinal oran


1

2htdp / görüntü, 202 bayt ile Raket 6.10

(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

metin ile görüntü tanımını buraya girin


Onu 100mavi bir yere yerleştiren ilk kişisin - neredeyse özlüyordu.
Antti29

1

Küçük Temel , 300 bayt

Hiçbir girdi almayan ve TextWindownesneye çıktı veren bir Script .

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)

SmallBasic.com'da deneyin! IE / Silverlight gerektirir

Çıktı

Finlandiya'nın 100. bağımsızlık gününden sonra gösterilir. Çıktı


0

önceden yapılmış kod aşağıdakine kadar indirildi:

HTML, CSS ve JavaScript, 1599 bayt

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>


Benim savunmamda, bunun ilk seferim olduğunu söyleyebilirim. Gelecekte daha kısa kod yapmaya çalışacağım.
Raunaq Koppikar

Stephen'ın daha önce de söylediği gibi, bu bir kod golfü ve programınızın mümkün olduğunca kısa olmasını hedefliyor. Lütfen, programınızı golf oynamazsanız (yani olduğu gibi bırakın) şu anda ciddi bir rakip olmadığından silme işlemine tabi olduğunu unutmayın. Sonunda siteye hoş geldiniz!
Caird coinheringaahing

Emin. Kesinlikle en kısa
sürede golf oynayacak


Ayrıca, girintiyi tamamen kaldırabilir ve CSS ve HTML'deki yeni satırları kaldırabilirsiniz. Ayrıca JS'deki semboller arasındaki boşlukları kaldırabilirsiniz (like ===ve 100).
HayırOnIh

0

HTML + JavaScript, 247 bayt

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

Ne kadar kısa süre alabileceğimi görmek için Base64 görüntüsü kullanmayı denemeye karar verdi. Kazanan değil, yine de ilginç.

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


İnterpolasyon içindeki parantezlere gerek yok ( ${(…)}${…}); bu HTML öznitelik değerleri etrafında çift tırnak kullanmaya gerek yok; geçersiz olmasına rağmen, çoğu durumda base64 kodlu dizgilerin dolgusunu eşit işaretlerle kesebilirsiniz (Firefox'ta kesinlikle kod çözme sorunu yoktur).
Manat çalışması
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.