生日快乐,芬兰!


37

介绍

众所周知,2017年,芬兰庆祝独立100周年。为了纪念这一场合,为每个人的乐趣举起芬兰国旗是您的工作。

挑战

创建一个产生芬兰国旗的程序或函数(灰色边框仅用于演示目的):

芬兰国旗

标志规格

  • 标记的比例为18:113单位为十字,粗细为,水平比例为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:002017-12-06或更高日期时,十进制数必须出现在标志上的某个位置(您的代码不应假定其运行的计算机设置为特定时区)。在日期之前,此号码一定不能存在。该数字必须以黑色(RGB (0, 0, 0)black)打印,但其位置和字体参数取决于您。

此类渲染的示例(再次忽略边框):

芬兰与100的旗帜

出于测试目的,最好包括解决方案的两个其他版本,一个版本具有固定的日期,而另一个版本具有未来的日期。

规则

内置的标志图像/库和标准漏洞都是禁止的。另外,您的代码不得输入任何内容。

芬兰人不喜欢闲聊,这是,所以不要浪费字符!


我们是否应该仅使用空格并使用# ASCII艺术?然后将字符插入100某处?
ADAM

1
我们是否可以将芬兰的日期作为缺少内部挂钟或未实施时区的系统的输入?我偶尔会在GFA-Basic(Atari ST,无时区)或CP-1610组件(Intellivision,无日期/时间)中发布答案,我们有时会在其他一些老式平台上提供答案,通常是很擅长绘制类似的东西,但由于日期问题,似乎在这里被取消资格。
Arnauld

1
@ Arnauld:天哪,我从没想过有人会使用这样的系统。我感谢您的困境,但是这会使其他人处于不利地位吗?我认为允许输入将使您仅需进行简单的整数比较。没有时间方面的非竞争性参赛作品将成为不可能吗?
Antti29年

1
@ Antti29老实说,我想不出任何好的解决方案,现在对规则进行任何重大更新为时已晚。除非有人提出了真正令人满意的建议,否则我认为这些系统根本无法在这里竞争。(我在沙盒中看到了挑战,没想到。我的错。)
Arnauld

Answers:


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
可爱的变量名!
ADAM

16

PHP + SVG(HTML5),147个 137 123字节

尼尔的 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';

更新:感谢Shaggy帮助我节省了10个字节。

<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吗?
ADAM

什么时候1512525600
2015年

15125256002017-12-06T02:00:00+00:00 in ISO 8601@Adám,是的,time()与时区无关。
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
@Arthur:恐怕您需要深入芬兰的思维方式才能完全欣赏我的评论:)
Antti29年

1
@fergusq好吧,如果是实际为该语言命名的人,那么我想没有更高的权威了。但是,即使知道“röda”不是芬兰语,我仍然坚持我先前的评论是合理的。语言名称不必是实际的单词。另外,虽然我可能并不了解它,但我很清楚芬兰人对瑞典人的反对态度,因为其职业历史和瑞典人在学校中被强制作为不断提醒我们的其中之一。
亚瑟

1
@PaŭloEbermann:不幸的是。
Antti29年

11

C#,407个 400 277字节

奇怪如何ForegroundColor =0被允许

由于TuukkaX,节省了1个字节

多亏了亚当,节省了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 = 0之所以允许,是因为文字0可以转换为C#规范中编写的任何枚举类型。
乔伊,

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
ADAM

@AdámAbsolutimeTime给出自1900
J42161217

@Jenny_mathy 1900年1月1日是哪个时区?
Daffy

@utc的达菲+02:00
J42161217

9

Python 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)类似的东西吗?
ADAM

使用time.gmtime替代的元组进行比较(见我的答案)!
Antti Haapala

[time.time()> 1512514800]
节食者

7

Python 3中,143个 141 135字节

对颜色使用ANSI转义,使用五个空格或“ 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+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会做!谢谢,我已经潜伏在这里大约一两年了,但是之前从未提交过任何东西。只是因为芬兰已经100岁而无法抗拒!
FatalError

7

Processing.org / Java 191 188字节

-3个字节,感谢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);}

之前之后


>15125255999999L可以是>=15125256e6
Kevin Cruijssen

@KevinCruijssen也许可以缩短,但是15125256e6是15125255815168,这已经晚了37个小时
PrincePolka

15125256e6D的作品,谢谢
PrincePolka '17

嗯,15125256e615125256000000我在Java 8中测试它的时候。但是我不知道Processing.org,所以它可能略有不同或使用其他版本吗?这是一个TIO,其中包含一些基本测试,15125256e6以验证它是否可以在Java 8中正常工作。但是,很高兴D在它修复之后,对此进行了介绍。很高兴我能帮上忙。:)
凯文·克鲁伊森

7

Excel VBA中,120 118 117个字节

匿名VBE立即窗口函数,不输入任何内容并输出芬兰国旗,并且如果芬兰的国旗年龄大于100岁,则不输出100。这是针对美国的复活节时区完成的,因为没有加载项或访问Internet,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岁

老芬兰语

-2字节更改If #12/5/17 19:00#<=Now Then[B2]=100If Now>=#12/5/17 19:0#Then[B2]=100

-1字节,用于Cells代替[A1:R11]


2
谁曾想到VBA可以做到这一点。优秀的。
Floris

3
@Floris,我已经意识到,在像素艺术方面,Excel VBA可以做一些令人惊奇的事情。:D
泰勒·斯科特

我想起了在VBA(在Excel工作表的单元格中编写的一种疯狂的宏语言,每个单元格一行)的前体中写过的东西,它们做了类似的事情(创建我正在研究的函数的2D强度图)。那一定是1991年。感谢您的回忆。
弗洛里斯(Floris)

1
@Floris很好,这是一个耻辱-但很高兴知道其他人知道他们是什么:)
Taylor Scott

1
来想一想-4.0之前的东西...我记得一切都崩溃了之后很烦。从那以后我已经去过很多次了。不向后兼容的大师。
弗洛里斯(Floris)

5

MATLAB,133个 130 123字节

3 10字节的沙漏感谢@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

JavaScript(ES5)+ SVG(HTML5),189179字节

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以外的地方运行时,它如何处理时区偏移?
ADAM

@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中与枕芯,213个 212 211字符(UNIX)和217 216个字符(便携式)

这是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.time返回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);
    }

结果

芬兰

学分

OlivierGrégoire使用lambda 节省了40个字节。Kevin Cruijssen
保存了4个字节,用于长格式。user902383 保存的2个字节用于十六进制格式化。


1
@jfhcs:不幸的是,这些是规则。而且...那是Java。
Antti29年

1
啊,我明白了。我将更新我的答案。我一定对规则有误解。
jfh

1
您可以替换true为s 1>0argsa,并能去除周围的空间=P j = new...节约几个字节。
贾斯汀·马里纳

1
342个字节(324个字节+的18个字节import java.awt.*;),包括条件。
奥利维尔·格雷戈尔(OlivierGrégoire)

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 

在此处输入图片说明


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:

在此处输入图片说明 在此处输入图片说明


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,SE näyttää tekstin "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"JA乔斯 nykyinen AIKA 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(显然是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 + 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>

您可以在任一解决方案中将时间戳记打零,以查看“ 100”的出现。


1

HTML + Javascript,329字节

我毫不客气地从@jstnthms偷走了日期检查部分。基本上,我只是用正确的行/列比率编写粗略的html表,th这是蓝色部分。在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'

捕获

由于字符比例的高/宽= 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

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

带文字 在此处输入图片说明


您是第一个将其放置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

正如斯蒂芬已经说过的,这是一场代码高尔夫,因此您的程序应该以尽可能短为目标。请记住,如果您不打高尔夫球(即保持原样),则该程序可能会被删除,因为它目前并不是真正的竞争者。最后,欢迎光临本站!
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对其解码当然没有问题)。
manatwork
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.