생일 축하합니다, 핀란드!


37

소개

알려진 바와 같이, 2017 년 핀란드 는 100 년의 독립을 축하합니다. 기회를 표시하려면 모두가 즐길 수 있도록 핀란드 깃발 을 만드는 것이 당신의 임무 입니다.

도전

핀란드의 국기를 생성하는 프로그램 또는 함수를 만듭니다 (회색 테두리는 프리젠 테이션 목적으로 만 사용됨).

핀란드의 국기

플래그 사양

  • 플래그의 비율은 18:11십자 3단위가 두껍고 가로 비율 세트는 5:3:10이고 세로 비율 세트는 4:3:4입니다.
  • 그림의 180 x 110크기 는 적어도 픽셀이거나 ASCII 아트 인 경우 90 x 55문자 여야합니다 .
  • 파란색에는 공식 RGB 색상이 없지만 가장 가까운 근사값을 사용하십시오 (0, 53, 128). 시스템이 RGB 값을 지원하지 않으면를 사용하십시오 blue.
  • 흰색의 경우 RGB (255, 255, 255)또는을 사용하십시오 white.

그렇게 빠르지 않은

핀란드의 국기를 그리는 것이 작년 아이슬란드의 도전 보다 더 간단 할 것이기 때문에 , 우리는 어려움을 조금 더 높여야 할 것입니다. 점을 감안 핀란드의 독립 기념일이 12월 6일에, 소수점 번호 100핀란드 (의 날짜 때 플래그 어딘가에 나타나야 UTC + 02 : 00 )입니다 2017-12-06이상 (코드는 현재 실행중인 시스템이 설정되어 있다고 가정하지 말아야 특정 시간대). 날짜 이전에는 숫자가 없어야합니다. 번호는 검은 색 (RGB (0, 0, 0)또는 black) 으로 인쇄해야 하지만 배치 및 글꼴 매개 변수는 사용자에게 달려 있습니다.

그러한 렌더링의 예 (다시 테두리를 무시하십시오) :

그것에 100와 핀란드의 국기

테스트 목적으로 솔루션의 두 가지 추가 버전을 포함시키는 것이 좋습니다. 하나는 과거에 날짜가 고정되어 있고 다른 하나는 미래에 있습니다.

규칙

내장 플래그 이미지 / 라이브러리와 마찬가지로 표준 허점 은 금지되어 있습니다. 또한 코드는 입력을 받아서는 안됩니다.

핀은 작은 대화를 좋아하지 않으며 이것은 이므로 문자를 낭비하지 마십시오!


# ASCII 아트의 경우 공간 만 사용해야 합니까? 그런 다음 100어딘가에 문자를 삽입 하시겠습니까?
Adám

1
내부 벽시계가 없거나 시간대를 구현하지 않는 시스템의 입력으로 핀란드의 날짜를 입력 할 수 있습니까? 때때로 GFA-Basic (Atari ST, 시간대 없음) 또는 CP-1610 어셈블리 (Intellivision, 날짜 / 시간 없음)에 답변을 게시하는 경우가 있습니다. 그런 것들을 그리는 데는 능숙하지만 날짜 문제 때문에 여기에서 실격 된 것 같습니다.
Arnauld

1
@Arnauld : 이런, 아무도 그런 시스템을 사용할 줄은 몰랐어요. 나는 당신의 처지에 감사하지만 다른 사람들에게 불리한 점을 남겨 두겠습니까? 입력을 허용하면 간단한 정수 비교로 떠날 것입니다. 시간적 측면이없는 비경쟁 참가작은 문제가되지 않습니까?
Antti29

1
@ Antti29 솔직히, 나는 좋은 해결책을 생각할 수 없으며 규칙을 크게 업데이트하기에는 너무 늦었습니다. 누군가가 정말로 만족스러운 제안을하지 않으면,이 시스템들은 여기서 경쟁 할 수 없다고 생각합니다. (나는 샌드 박스에서 도전을 보았고 그것에 대해 생각하지 않았다. 내 나쁜.)
Arnauld

답변:


24

C (Windows), 361 바이트

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

풀림 :

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

산출:

다음과 같은 경우 출력 UTC time >= 2017-12-05-22-00:

d=gmtime(&n);시도한 후 코드에 다음을 추가하십시오 .

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

13
귀여운 변수 이름!
Adám

16

PHP + SVG (HTML5), 147 (137) 123 바이트

Neil의 SVG 코드

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

업데이트 : 10 바이트를 절약하는 데 도움을 준 Shaggy 에게 감사드립니다 .

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

업데이트 2 : Ismael Miguel의 스마트 한 아이디어 , 14 바이트를 절약 해 주셔서 감사합니다

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

표준

표준

12 월 6 일 이후 +2 시간

12 월 6 일 이후-+2 시간


그래서 time()UTC를 제공합니까?
Adám

언제 1512525600입니까?
Adám

1512525600이다 2017-12-06T02:00:00+00:00 in ISO 8601아담 @ 그래, 시간 () 시간대에 독립적이다.
th3pirat3 '12

12

로다 , 252 250 바이트

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

온라인으로 사용해보십시오!


25
대담! 스웨덴어 언어로 핀란드어 문제를 해결했습니다.
Antti29

1
@Arthur 그것은 스웨덴어 단어의 이름을 따서 지어진 것으로 핀란드어에는 그러한 단어가 없습니다. 내가 핀란드어로 말하고 있기 때문에 git에는 핀란드어가 포함되어 있습니다.
fergusq

1
@Arthur : 내 의견을 완전히 이해하기 위해 핀란드의 사고 방식을 탐구해야 할 것 같습니다. :)
Antti29

1
@fergusq 글쎄, 언어를 실제로 명명 한 사람이 보낸 것이라면 더 높은 권위가 없다고 생각합니다. 그러나 "röda"가 핀란드어가 아니라는 사실을 알고 있어도 이전 의견은 그럴듯하다고 생각합니다. 언어 이름은 실제 단어 일 필요는 없습니다. 또한, 그 안에는 없을 수도 있지만, 핀란드 인이 스웨덴과의 직업적 역사와 스웨덴에 대한 적대감을 잘 알고 있습니다.
Arthur

1
@ PaŭloEbermann : 불행히도.
Antti29

11

C #, 407 400 277 바이트

이상한 방법 ForegroundColor =0 은 허용됩니다

TuukkaX 덕분에 1 바이트 절약

Adam 덕분에 67 바이트 절약

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

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 테스트 :

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 = 0리터럴 0C # 사양에 작성된 것처럼 임의의 열거 형으로 변환 가능하므로 허용 됩니다.
Joey

9

Mathematica, 129 바이트

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


전 .. 후 ..
여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오
Wolfram Sandbox 에서 언제든지 테스트 할 수 있습니다
(코드를 붙여 넣고 Shift-Enter를 누르십시오)


언제 3721507200입니까?
Adám

아담 AbsolutimeTime 년 1 월 1 일 1900 년 초부터 초 총 수를 제공 @
J42161217

@Jenny_mathy 어떤 시간대의 1900 년 1 월 1 일?
Daffy

@Daffy of utc +02 : 00
J42161217

9

파이썬 2 , 247 246 230 210 189 바이트

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

온라인으로 사용해보십시오!

.ppm 이미지를 인쇄합니다 :

노멀 플래그

핀란드

100으로 플래그

핀란드 100


또는 이와 유사한 datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)것으로 교체 할 수 있습니까 datetime.utcnow()>=datetime(2017,12,05,22,0,0)?
Adám

time.gmtime튜플 비교에 대신 사용 하십시오 (내 답변 참조)!
Antti Haapala

[time.time ()> 1512514800]
dieter

7

파이썬 3 143 141 135 바이트

색상에 ANSI 이스케이프를 사용하고, 5 개의 공백 또는 "100"을 컬러 문자열로 사용하므로 플래그의 어딘가에 "100"을 특별히 인쇄 할 필요가 없습니다. 너비 때문에 길이 5이므로 90/5 == 90//5. 사용되는 문자열은 1 행에서 정의됩니다. 그런 다음 55 회 (높이)를 반복합니다. 반복 할 때마다 v색상이 [Blue, BrightWhite] 인 문자열로 설정되고 선택한 인덱스는 boolean row<20 or r>34입니다. 결과에 다시 5를 곱합니다 (너비 치수 : 25:15:50이므로 총 너비는 90입니다). 그런 다음 파란색 또는 밝은 흰색이 v + Blue + Blue + Blue + v + v + Black어디에 있는지 인쇄합니다 v. 인쇄를 명확하게하려면 : 너비 v는 25 자, 파랑 ( e%44*3)은 15, 너비 v*2는 50입니다.25+15+50너비는 90이고 작업에 필요한 치수를 따릅니다! 꽤 지저분한 요약이지만 아무것도 아닌 것보다 낫습니다.

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
사이트에 오신 것을 환영합니다!
caird coinheringaahing

2
PPCG에 오신 것을 환영합니다! 답변에 언어 플래그를 추가했으며 프로그램 작동 방식에 대한 기본 설명을 추가하는 것이 좋습니다. 그렇지 않으면 훌륭한 첫 번째 답변 :)
Taylor Scott

2
@TaylorScott 것입니다! 고마워요. 1 ~ 2 년 동안 여기에 숨어 ​​있었지만 아무 것도 제출하지 않았습니다. 핀란드가 100 년 동안 돌아 서서 저항 할 수 없었습니다!
FatalError

7

Processing.org / 자바 191 188 바이트

KevinCruijssen 덕분에 -3 바이트

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

전 후


>15125255999999L수 있습니다>=15125256e6
Kevin Cruijssen

@KevinCruijssen 아마 그것은 단축 될 수 있지만 15125256e6는 15125255815168 37 시간이 너무 늦습니다
PrincePolka

15125256e6D 작품, 감사
PrincePolka

흠, 15125256e6이다 15125256000000나는 그것이 자바 8에서 테스트하지만 Processing.org을 모를 때 그래서 아마도 약간의 차이 또는 다른 버전을 사용하고,? 다음은 15125256e6Java 8에서 작동하는지 확인하기위한 몇 가지 기본 테스트가 포함 된 TIO입니다. 그러나 D문제를 해결 한 후 다행 입니다. 기꺼이 도와 드리겠습니다. :)
Kevin Cruijssen

7

엑셀 VBA, 120 (118) 117 바이트

입력을받지 않고 핀란드어 플래그를 출력하고 핀란드가 100 세 이상인 경우 해당 플래그에서 익명 VBE 즉시 창 기능 100. Excel 또는 Excel VBA가 추가 기능이나 인터넷에 액세스하지 않고 시간대를 결정할 수있는 방법이 없기 때문에 미국의 부활절 시간대와 관련하여 수행됩니다.

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

산출

핀란드가 100 세 미만인 경우

젊은 핀란드어

핀란드가 100 세 이상인 경우

올드 핀란드어

로 변경 If #12/5/17 19:00#<=Now Then[B2]=100하기 위한 -2 바이트If Now>=#12/5/17 19:0#Then[B2]=100

-1이 Cells아닌 사용 바이트[A1:R11]


2
ol 'VBA가 이것을 할 수 있다고 생각했던 사람. 우수한.
Floris

3
@Floris, 픽셀 아트와 관련하여 Excel VBA는 놀라운 일을 할 수 있음을 알게되었습니다 . : D
Taylor Scott

VBA (셀당 한 줄씩 Excel 시트의 셀에 기록 된 미친 매크로 언어)에 전구체의 무언가를 작성하는 것이 비슷합니다 (연구중인 함수의 2D 강도 그래프 작성). 1991 년이었을 것입니다. 기억에 감사드립니다.
Floris

1
@Floris 그것은 부끄러운 일이지만 다른 누군가가 자신이 무엇인지 알고 있다는 것을 아는 것은 좋은 일입니다.)
Taylor Scott

1
그리고 그것을 생각해 보자 – 4.0 이전에 무언가가 있었다. .. 모든 것이 깨졌을 때 화가 나었던 것을 기억한다. 그 이후로 여러 번 왔습니다. 이전 버전과 호환되지 않는 마스터
Floris

5

MATLAB, 133 (130) 123 바이트

3 10 바이트 감사 sabed @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

이것은 [0, 51, 128]파란색에 사용 됩니다. 이미지의 크기는 180 × 110 픽셀입니다.

샘플 실행 :

여기에 이미지 설명을 입력하십시오

텍스트와 샘플 실행 (변화 7370350텍스트가 어떤 일에 표시되도록 코드) :

여기에 이미지 설명을 입력하십시오


4

자바 스크립트 (ES5) + SVG (HTML5), 189 179 바이트

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) 편집 : @Shaggy 덕분에 10 바이트가 절약되었습니다. 출력 :

<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가 아닌 다른 곳에서 실행될 때 표준 시간대 오프셋을 어떻게 처리합니까?
Adám

@ Adám Date.now()은 UTC이며 UTC 값과 비교합니다 2017/12/06 00:00:00 UTC+2.
Neil

내 PHP 스 니펫에서 SVG 코드를 사용해도 되나요?
th3pirat3

2
@ Adám 내가 이미 말했습니까?
Neil

1
교체 <path></path><path/>몇 바이트를 저장합니다.
얽히고 설킨 Shaggy

4

파이썬 3 베개, 213 개 (212) 211 문자 (UNIX) 및 (217 개) (216)의 문자 (휴대용)

이것은 유닉스 버전입니다. time()1970 년 1 월 1 일에 반환 된 시간 이 반드시 시대를 가질 필요는 없으므로 게시 할 수는 없다는 것을 알았습니다 .

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

이것은 휴대용 코드이며 4 바이트 이상이며 gmtime튜플 비교와 함께 사용 하므로 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()

이미지가 창에 표시됩니다. 더 적은 문자를 소비하게 만드는 것은 정말 어렵습니다. 심지어 time.timeA는 반환 float그래서 >0x5a273299꽤 정확하지 않을 것이다, 또는 >0x5a273300마이크로 초으로 해제 될 것입니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


4

Tcl / Tk , 135 바이트

대화식 쉘에서 실행해야합니다.

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 02:00 이전 GMT

여기에 이미지 설명을 입력하십시오

2017/12/06 02:00 이후 GMT

여기에 이미지 설명을 입력하십시오


4

자바 342 368 361 321 317 (299 + 18) 바이트

골프

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

언 골프

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

결과

핀란드

크레딧

람다를 사용하기 위해 Olivier Grégoire가 40 바이트를 절약했습니다 . 긴 형식을 위해 Kevin Cruijssen이
4 바이트를 저장했습니다 . 16 진 형식화를 위해 user902383이 2 바이트를 저장했습니다 .


1
@jfhcs : 불행히도, 그 규칙이있었습니다. 그리고 ... 그것은 자바입니다.
Antti29

1
아 알 겠어요 답변을 업데이트하겠습니다. 규칙을 잘못 해석 했어야합니다.
jfh

1
당신은 대체 할 수있는 true과들 1>0, args함께 a, 주위 공간을 제거 할 수 있습니다 =에서 P j = new...몇 바이트를 저장합니다.
Justin Mariner

1
import java.awt.*;조건이 포함 된 342 바이트 (324 바이트 + 18 바이트 )
Olivier Grégoire

1
귀하의 현재 답변에는 다음과 같은 몇 가지 결함이 있습니다. 1. 전혀 없습니다 import. 2. 변수 이름이 짧아지지 않습니다 : args로 줄일 수 있습니다 a. 3. 항목에 포함 된 선택적 공백이 여전히 있습니다. 4. "100"의 조건부 인쇄가 없습니다.
Olivier Grégoire

3

정력, 147

나는이 도전을 정말로 좋아한다 ☺. ©는 탈출이다.

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 

여기에 이미지 설명을 입력하십시오


3

강타와 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:

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오


1
산술 평가를 더 잘 사용하십시오 ((`date +%s`>=1512511200))&&x=100. 작은 따옴표는 -draw매개 변수 내에서 이스케이프가 필요하지 않은 곳 으로 옮겼습니다 .
manatwork

2

명령형 Tampio , 239 바이트 (비경쟁)

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

이소 sivu avautuu , 자체 näyttää tekstin "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"에서 ja , 호세 nykyinen 아이카 millisekunteina suurempi kuin 1512511200000 , NIIN 자체 näyttää tekstin"<text y=19>100" .

온라인 버전

번역:

큰 페이지가 열리면 텍스트가 표시 "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"되고 현재 시간이 밀리 초보다 크면 1512511200000텍스트가 표시됩니다 "<text y=19>100".

SVG는 이 답변 에서 th3pirat3 (및 Neil이 등장한 것)에서 가져 왔습니다 .

이 프로그램은 내가 작업 한 Tampio의 새 버전으로 작성되었습니다. 핀란드어를 아는 사람들은 거의 읽을 수 있음을 알 수 있습니다. 이 언어는이 도전 후에 출판 되었기 때문에 대답을 비경쟁으로 표시했습니다.

이 프로그램을 실행하려면 컴파일 된 JS 버전의 프로그램이 포함 된 위의 온라인 버전으로 이동하거나 Github 페이지 에서 컴파일러를 다운로드 하십시오 . 프로그램을 컴파일하려면을 실행하십시오 python3 tampio.py -p program.itp >program.html.

Tampio는 어느 정도의 골프 언어는 아니지만 더 나은 svg 코드로 인해 실제로 Röda를 이겼습니다 ... 약간 놀랐습니다.


더 좋아!
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

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오


1

HTML + CSS + 자바 스크립트, 339 바이트

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

여기에 동일한 솔루션이 260 바이트로 축소되어 시청 포트의 비율이 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>

어느 솔루션에서든 타임 스탬프를 0으로 두드리면 "100"이 표시됩니다.


1

HTML + 자바 스크립트, 329 바이트

@jstnthms에서 날짜 확인 부분을 뻔뻔스럽게 훔쳤습니다. 기본적으로 나는 올바른 행 / 열 비율로 조잡한 HTML 테이블을 작성합니다 th. 파란색 부분입니다. mee.fi -site 에서도 IE와 Chrome에서 테스트했습니다 .

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

순수한 자바 스크립트 (콘솔에 붙여 넣기)로 더 골프를 칠 수 있습니까?
diynevala

1

펄 5, 139 바이트

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

발사 될

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'

포착

문자 비율 높이 / 너비 = 1.66 (5/3) 때문에 비율이 변경되었습니다. 그렇지 않으면 원래 비율로 변경됩니다.

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

원래 비율


1

2htdp / 이미지, 202 바이트의 라켓 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))

언 골프 드 :

(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

텍스트와 함께 여기에 이미지 설명을 입력하십시오


당신은 100파란 부분에 가장 먼저 배치했습니다 – 거의 놓쳤습니다.
Antti29

1

작은 기본 , 300 바이트

TextWindow객체에 입력 및 출력을받지 않는 스크립트 .

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에서 사용해보십시오! IE / Silverlight 필요

산출

핀란드 독립 기념일 100 일 후. 산출


0

이전에 만든 코드는 다음과 같이 요약되었습니다.

HTML, CSS 및 JavaScript, 1599 바이트

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>


글쎄, 내 방어에서, 나는 이것이 처음이라고 말할 것이다. 앞으로 더 짧은 코드를 만들려고합니다.
Raunaq Koppikar

Stephen이 이미 말했듯이, 이것은 코드 골프이므로 가능한 한 짧게 프로그램해야합니다. 프로그램을 골프화하지 않으면 (즉, 그대로 두는 경우) 현재 경쟁자가 아니기 때문에 삭제 될 수 있습니다. 마지막으로, 사이트에 오신 것을 환영합니다!
caird coinheringaahing

확실한. 확실히 골프를 타게 될 것입니다
Raunaq Koppikar

제안대로 편집
Raunaq Koppikar

들여 쓰기를 모두 제거하고 CSS 및 HTML에서 줄 바꿈을 제거 할 수도 있습니다. 또한 JS에서 기호 사이의 공백을 제거 할 수 있습니다 (예 : ===100).
NoOneIsHere 여기

0

HTML + 자바 스크립트, 247 바이트

<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

자바 스크립트 ES6, 532 바이트

내가 얼마나 짧은 지 알기 위해 Base64 이미지를 사용하기로 결정했습니다. 그럼에도 불구하고 승자는 아니지만 흥미 롭습니다.

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


보간 내부에 괄호가 필요하지 않습니다 ( ${(…)}${…}). HTML 속성 값을 큰 따옴표로 묶을 필요가 없습니다. 유효하지는 않지만 대부분의 경우 base64로 인코딩 된 문자열의 패딩을 등호로 잘라낼 수 있습니다 (Firefox는 확실히 디코딩하는 데 아무런 문제가 없습니다).
manatwork
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.