誕生日おめでとう、フィンランド!


37

前書き

知られているように、2017年にフィンランドは100年の独立を祝います。機会をマークするために、みんなの楽しみのためにフィンランドの旗を作ることはあなたの仕事です。

チャレンジ

フィンランドの国旗を作成するプログラムまたは関数を作成します(灰色の境界線は表示のみを目的としています)。

Flag of Finland

フラグの仕様

  • フラグの比率は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か、後で(あなたのコードは、それが実行しているマシンがAに設定されていることを仮定するべきではありません特定のタイムゾーン)。日付の前に、番号がそこにあってはなりません。番号は黒(RGB (0, 0, 0)またはblack)で印刷する必要がありますが、その配置とフォントパラメータはユーザー次第です。

そのようなレンダリングの例(再び、境界線を無視します):

Flag of Finland with 100 on it

テストのために、ソリューションの2つの追加バージョンを含めると便利です。1つは過去の日付が固定され、もう1つは将来の日付です。

ルール

組み込みのフラグイメージ/ライブラリと同様に、標準の抜け穴は禁止されています。また、コードは入力を受け付けてはなりません。

フィンランド人は世間話は好きではなく、これはなので、キャラクターを無駄にしないでください!


# ASCIIアートの場合、スペースを使用する必要がありますか?そして、文字を100どこかに挿入しますか?
アダム

1
フィンランドの日付を、内部の壁時計がないシステムやタイムゾーンを実装していないシステムへの入力として使用できますか?私は時々GFA-Basic(Atari ST、タイムゾーンなし)またはCP-1610アセンブリ(Intellivision、日付/時刻なし)で回答を投稿しています。そのようなものを描くのはかなり良いですが、日付の問題のためにここでは失格しているようです。
アーナルド

1
@アーナウルド:まあ、私は誰もがそのようなシステムを使用するとは思わなかった。私はあなたの苦境に感謝しますが、それは他の人を不利にさせますか?入力を許可すると、単純な整数比較だけが残ります。時間的側面のない非競合エントリーは問題外でしょうか?
Antti29

1
@ Antti29正直なところ、私は良い解決策を考えることができず、ルールを大幅に更新するのは遅すぎます。誰かが本当に満足のいく提案を持って来ない限り、私はこれらのシステムが単にここで競争できないと思います。(私はサンドボックスで課題を見たが、それについては考えなかった。私の悪い。)
アーナルド

回答:


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
かわいい変数名!
アダム

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

普通

normal

12月6日+2時間後

after 6th Dec - +2 hours


だから、time()UTCができますか?
アダム

いつ1512525600ですか?
アダム

1512525600ある2017-12-06T02:00:00+00:00 in ISO 8601アダム@はい、時間()タイムゾーンは無関係です。
th3pirat3

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
@アーサー:私のコメントを完全に評価するには、フィンランドの考え方を掘り下げる必要があると
思う

1
@fergusqまあ、それが実際に言語に名前を付けた人からのものであれば、それ以上の権限はないと思います。しかし、「röda」はフィンランド語ではないという知識があっても、以前のコメントはもっともらしいと思います。言語名は実際の単語である必要はありません。また、私はその中にいるわけではないかもしれませんが、フィンランド人がスウェーデンに対して持っている敵対心をよく知っています。
アーサー

1
@PaŭloEbermann:残念ながら。
アンティ29

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

テスト用に未使用:

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 = 0C#仕様で0書かれているように、リテラルは列挙型に変換できるため、許可されています。
ジョーイ

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


before .. after ..
enter image description here

enter image description here
Wolfram Sandboxで いつでもテストできます
(コードを貼り付けてShift-Enterを押します)


いつ3721507200ですか?
アダム

アダムAbsolutimeTime @ 1900年1月1日の初め以来の秒数の合計を与える
J42161217を

@Jenny_mathy 1900年1月1日、どのタイムゾーンですか?
ダフィー

@Daffy of utc +02:00
J42161217

9

パイソン2247の 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画像を印刷します。

通常フラグ

Finland

100のフラグ

Finland100


またはそれに類似したものにdatetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)置き換えることができますdatetime.utcnow()>=datetime(2017,12,05,22,0,0)か?
アダム

time.gmtime代わりにタプルの比較に使用してください(私の答えを参照)!
アンティハアパラ

[time.time()> 1512514800]
ディーター

7

Python 3、 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ブルーまたはBrightWhiteのいずれかです。印刷を明確にするため:の幅vは25文字、青の幅(e%44*3)は15、幅v*2は50です。25+15+5090は幅で、タスクに必要な寸法に従います!かなり乱雑な要約ですが、何もないよりはましだと思います。

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
サイトへようこそ!
コイナーリンガーをケア

2
PPCGへようこそ!回答に言語フラグを追加しました。プログラムの動作方法の基本的な説明を追加することをお勧めします-しかし、そうでない場合は素晴らしい最初の回答:)
テイラースコット

2
@TaylorScottします!ありがとう フィンランドが100年を迎えたため、抵抗できませんでした!
FatalError

7

Processing.org / Java 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);}

Before After


>15125255999999Lすることができます>=15125256e6
ケビンCruijssen

@KevinCruijssenおそらく遅すぎる37時間である、shortendedすることができますが、15125256e6は15125255815168です
PrincePolka

15125256e6D作品、ありがとう
PrincePolka

うーん、15125256e6された15125256000000私は、Java 8でそれをテストしかし、私はProcessing.orgを知らないとき、ので、おそらくそれは、わずかに異なるか、異なるバージョンを使用してですか?Java 8で動作することを確認するためのいくつかの基本的なテストを含むTIOを次に示し15125256e6ます。しかしD、修正後はうれしいです。お役に立てて嬉しいです。:)
ケビンクルーイッセン

7

Excel VBA、 120 118 117のバイト

匿名のVBEイミディエイトウィンドウ関数。入力を行わず、フィンランドフラグを出力します。フィンランドが100年を超えている場合は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歳未満の場合

Young Finnish

フィンランドが100歳以上の場合

Old Finnish

に変更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
誰が昔のVBAでこれができると思っていたでしょう。優れた。
フローリス

3
@Floris、ピクセルアートに関しては、Excel VBAが驚くべきことを実行できることに気付きました:D
テイラースコット

私は、VBA(Excelシートのセルにセルごとに1行で記述されたクレイジーなマクロ言語)の前身に、似たようなこと(勉強している関数の2D強度グラフを作成する)を書くことを思い出しました。それは1991年だったに違いない。思い出してくれてありがとう。
フローリス

1
@フロリスはそれは残念です-しかし、誰かが彼らが何であるかを知っていることを知っているのは良いことです:)
テイラースコット

1
そして、考えてみると、4.0より前に何かがありました...すべてが壊れたとき、私はイライラしたことを覚えています。それ以来私は何度もしています。下位互換性のないマスター。
フローリス

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ピクセルです。

サンプル実行:

enter image description here

テキストを使用したサンプルの実行(コードがに変更7370350れ、テキストがいつでも表示されるようになります):

enter image description here


4

JavaScript(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 Date.now()はUTCであり、UTC値のに対して比較します2017/12/06 00:00:00 UTC+2
ニール

私のPHPスニペットでSVGコードを使用しても大丈夫ですか?
th3pirat3

2
@Adámすでに言った?
ニール

1
置換<path></path><path/>て、数バイトを節約します。
シャギー

4

Python 3 with Pillow、213 212 211文字(Unix)および 217 216文字(Portable)

これはUnixバージョンです。投稿した後、返された時間は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、マイクロ秒単位でオフになります。

enter image description here

enter image description here


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より前

enter image description here

2017/12/06 02:00 GMT以降

enter image description here


4

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

結果

Finland

クレジット

ラムダを使用するためにOlivierGrégoireによって保存された40バイト。ロングフォーマット用にKevin Cruijssen
によって4バイトが保存されました。16進フォーマット用にuser902383 によって保存された2バイト。


1
@jfhcs:残念ながら、それらがルールでした。そして...それはJavaです。
Antti29

1
ああ、なるほど。回答を更新します。私はルールを誤って解釈したに違いありません。
JFH

1
あなたは置き換えることができtrueて、Sを1>0argsa、と周りのスペースを削除することができます=P j = new...数バイトを保存します。
ジャスティンマリナー

1
342バイト(324バイト+の18バイトimport java.awt.*;)、条件を含む。
オリビエグレゴワール

1
現在の応答には、無効にするいくつかの欠陥があります。1 import.まったくありません。2.変数名は短縮されません:に短縮argsできますa。3.エントリに含まれるオプションのスペースがまだあります。4.「100」の条件付き印刷はありません。
オリビエグレゴワール

3

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

enter image description here


3

bashおよび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:

enter image description here enter image description here


1
より良い算術評価を使用する:((`date +%s`>=1512511200))&&x=100-drawパラメーター内で一重引用符を移動したことに注意してください。エスケープする必要はありません。
マナトワーク

2

命令的なタンピオ、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、SE näyttää tekstin "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"JAヨス nykyinenあいかmillisekunteina suurempi kuin 1512511200000niin SE näyttää tekstin"<text y=19>100"

オンライン版

翻訳:

大きなページが開く"<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"と、テキストが表示され、ミリ秒単位の現在の時間が1512511200000、テキストが表示されます"<text y=19>100"

SVGは この回答ましたからth3pirat3(およびニール、どうやら)によって取得されました。

このプログラムは、私が取り組んでいるTampioの新しいバージョンで書かれています。フィンランド語を知っている人は、フィンランド語がほとんど読めることを知っています。この言語はこのチャレンジの後に公開されたため、私は答えを非競合としてマークしました。

このプログラムを実行するには、プログラムのコンパイル済みJSバージョンを含む上記のオンラインバージョンにアクセスするか、Githubページからコンパイラーをダウンロードします。。プログラムをコンパイルするには、次を実行しますpython3 tampio.py -p program.itp >program.htmlます。

タンピオは、いかなる意味でもゴルフの言語ではありませんが、svgコードが優れているため、実際にはローダに勝っています...少し驚きました。


それはもっと似ています!
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

enter image description here enter image description here


1

HTML + CSS + Javascript、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 + Javascript、329バイト

@jstnthmsから日付チェック部分を恥ずかしく盗んだ。基本的に、正しい行/列比でth青の部分である未加工のhtmlテーブルを作成します。IEおよびChrome、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);">

純粋なjavascript(コンソールに貼り付け)でさらにゴルフすることができますか?
diynevala

1

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

capture

比率は、文字比率の高さ/幅= 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

original ratio


1

ラケット6.10、2htdp /イメージ、202バイト

(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

with text enter image description here


100青色の部分に最初に配置したのは、ほとんど見逃しました。
アンティ29

1

Small Basic、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日後に表示されます。 Output


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

スティーブンがすでに言ったように、これはコードゴルフです。したがって、プログラムはできるだけ短くすることを目指してください。もしあなたがあなたのプログラムをゴルフしない(すなわち、そのままにしておく)ならば、それは現在深刻な競争相手ではないので削除の対象となることに留意してください。最後に、サイトへようこそ!
caird coinheringaahing

はい。間違いなくできるだけ早くゴルフを取得します
Raunaq Koppikar

提案
どおりに

インデントをすべて削除したり、CSSおよびHTMLの改行を削除したりすることもできます。さらに、JSのシンボル間のスペース(===およびなど100)を削除できます。
NoOneIsHere

0

HTML + JavaScript、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

JavaScript 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でのデコードに問題はありません)。
マナトワーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.