Triforce ReBoot [关闭]


10

看到你好世界如何事与愿违,这是一个困难的过程。

我爱Zelda,也爱ReBoot。

创建以下

在此处输入图片说明

要求:
它必须是一个窗口(可以是任何窗口,甚至是浏览器等)。
窗口可以是任何大小。
窗口中除图片外可能不包含其他任何内容。
窗口不应立即自行关闭。
三角形必须是任何蓝色阴影。
圆圈必须是任何绿色阴影。
较小的三角形必须
通过提供链接来接触“ 禁止偷窃”图像的边缘。

条件:最短的代码获胜。

PS:是的ReBoot徽标略有不同,但这足够使它有趣。

编辑:我添加了另一个要求。似乎我们有很多非常聪明的人喜欢发现漏洞:PI爱你们。


“三角形必须是任何黄色阴影。” 图片有冲突吗?
Timtech

@Timtech我很抱歉,由于拼写错误而使文本下划线显示为橙色,而我想写蓝色时以为橙色。
Quillion

1
好吧,至少现在已经修复了。而且我什至试图发表简短的评论-打高尔夫球的代码太多...
Timtech

如果图像填满屏幕并在调整屏幕大小时继续获得奖励积分?(那么您必须允许圆形为椭圆形)
Cruncher

实际上,再次阅读需求,是什么阻止某人仅在绘画中创建图像,然后使程序读取图像?这只是python中的几行。也许你应该写对一个规则
排排坐

Answers:


10

Mathematica 118119118107 97

编辑:在Belisarius的帮助下缩短到107个字符,在alephalpha的帮助下缩短到97个字符。

CreateDialog[Graphics@{Blue,Polygon@Outer[Plus,#,#,1]&@{{0,0},{1,1},{2,0}}, Green,
{2,1}~Circle~1}]

三角形


我怕你打了我:3但是那个圈子一定是绿色的!
Timtech

现在是绿色的。感谢您的注意。
DavidC

1
在107年:p=Polygon;a={1,1};b={2,0};CreateDialog[Graphics@{Blue,p@{0a,2b,2a},White,p@{a,b+a,b},Green,{2,1}~Circle~1}]
belisarius博士13年

1
CreateDialog[Graphics@{Blue,Polygon@Outer[Plus,#,#,1]&@{{0,0},{1,1},{2,0}},Green,{2,1}~Circle~1}]
alephalpha

3
我从朋友那里得到了一些帮助。
DavidC

7

Dyalog APL(121 116 115)

(编辑:使用8个元素而不是10个元素的三角形,以缩短代码长度)

(编辑2:我只使用过,因此将包含¨在的定义中M

M←{' ',⍵,⍺,⍨4/0}¨⋄⎕SM←↑(256M⊃,/(⊂8 0)(⊂8 32)(⊂0 16)∘.+⊂(,⍳⍴Z)/⍨≤/¨,Z←⊖Z,⌽Z←2/⍳2/8),512M⌈0 16∘+¨1 2∘ר8+8×1 2∘○¨⍳1e4

图形?谁需要图形?

(此外,黑色是默认背景,您没有说要更改它)

在此处输入图片说明


4

Shell脚本:166163个字符

f=-fill
d=-draw
convert -size 64x32 xc: $f blue $d 'polygon 32,0 0,32 64,32' $f white $d 'polygon 32,32 16,16 48,16' $f none -stroke lime $d 'circle 32,16 32,0' x:

样本输出:

Triforce ReBoot徽标


这比shell更像imagemagick
mniip 2013年

@mniip,对。但是由于ImageMagick主要是一个库。如果这是使用IMagick的PHP脚本,则帖子标题将显示PHP,而不是ImageMagick。好吧,根据我的逻辑。我不反对任何前进的方向。但是无论如何,自第一个版本以来,三个字符中的两个缩短了,位于shell一侧。:)
manatwork 2013年

4

R,124122,111

frame()
p=polygon
p(c(1,3,5)/5,c(1,3,1)/5,c=4)
p(c(2,4,3)/5,c(2,2,1)/5,c="white")
symbols(.6,.4,.1,i=1,a=T,f=3)

这将在绘图窗口中产生以下图片:

在此处输入图片说明


我认为您可以先写一个p=polygon,然后再保存一个字符p(c(1,3,5(顺便说一句,顺便说一句,在我的系统上,当调整窗口大小时,圆的大小与三角形的缩放比例不同,我必须稍作尝试才能使圆与“正方形”的一角。)
res

@res感谢您的提示。圆的大小是此解决方案的主要缺点。我无法找出一个简短的代码来解决这个问题。
Sven Hohenstein

@plannapus好主意,谢谢!这节省了11个字符。
Sven Hohenstein

3

Java中,434 358 349

import java.awt.*;
public class T
{
    public static void main(String[] a)
    {
        new Frame()
        {
            public void paint(Graphics g)
            {
                g.setColor(Color.BLUE);
                Polygon p=new Polygon(new int[]{50, 75, 100},new int[]{75, 50, 75},3);
                g.fillPolygon(p);
                p.translate(-25, 25);
                g.fillPolygon(p);
                p.translate(50, 0);
                g.fillPolygon(p);
                g.setColor(Color.green);
                g.drawOval(50, 50, 50, 50);
            }
        }.show();
    }
}

打高尔夫球

import java.awt.*;public class T{public static void main(String[] a){new Frame(){public void paint(Graphics g){g.setColor(Color.BLUE);Polygon p=new Polygon(new int[]{50,75,100},new int[]{75,50,75},3);g.fillPolygon(p);p.translate(-25,25);g.fillPolygon(p);p.translate(50,0);g.fillPolygon(p);g.setColor(Color.green);g.drawOval(50,50,50,50);}}.show();}}

谁知道打高尔夫球会大大减少代码。

编辑:感谢manatwork的所有建议。


1
请打高尔夫球。
凯文·考克斯

在参数分隔符逗号之后,您仍然有无用的空格。并且,请使用代码块而不是内联代码标记,以便诸如Code Golf UserScript增强包之类的脚本可以将其识别为代码并显示其大小。
manatwork

3

游戏制造商的语言,167 165 155

EDIT 1 - I通过替换剃掉两个字符c_green32768,相同的值。其他颜色的值比其预定义名称长。

编辑2-史诗般的高尔夫!已使用的变量用于经常使用的值,并且忘记了不需要换行符(换行符视为两个空格)。

房间(r)预定义为64 x 32,背景为白色。对象d在房间的任何地方r。绘制事件代码:

a=16b=32draw_set_color(c_blue)draw_triangle(0,b,64,b,b,0,0)draw_set_color(32768)draw_circle(b,a,a,1)draw_set_color(c_white)draw_triangle(a,a,48,a,b,b,0)

结果:

房间的输出

Ti84-Basic-54个字符(但输出为黑白)

:Line(0,0,2,0
:Line(0,0,1,1
:Line(2,0,1,1
:Circle(1,.5,.5

没有使用图片!
Timtech

该图是否出现在其自己的窗口中?
DavidC 2013年

@DavidCarraher是的。我使用了游戏中的屏幕截图,因此该窗口没有显示。
Timtech

您使用了draw_set_color3次。您不能通过类似的方式保存字符d=draw_set_character吗?
DavidC

@DavidCarraher我已经尝试过了;它不工作:( GML样得到顽固有时。
Timtech

2

HTML,101

<img style=position:absolute;clip:rect(30px,130px,110px,20px) src=http://i.stack.imgur.com/iE6m9.png>

2
有一个新的要求-“不能通过提供链接来窃取图像。”
Timtech

我敢打赌,您可以用一个简单的方法击败它: http://someshort.url(...这也会产生另一个要求)
Olivier Dulac

2

HTML + CSS,352 290 261 257

<div style="width:0;border:50px solid #fff;border-bottom-color:#00f">
<p style="border:25px solid #00f;border-top-color:#fff;border-bottom:0;margin:25px 0 0 -25px">
<p style="border:1px solid #0f0;border-radius:50px;width:50px;height:50px;margin:-52px -26px">

http://jsfiddle.net/WF3hP/6/

取消高尔夫:

<style>
    #blue-triangle {
        width:0;
        border:50px solid #fff;
        border-bottom-color:#00f
    }
    #white-triangle {
       border:25px solid #00f;
       border-top-color:#fff;
       border-bottom:0;
       margin:25px 0 0 -25px        
    }
    #circle {
       border:1px solid #0f0;
       border-radius:50px;
       width:50px;
       height:50px;
       margin:-52px -26px        
     }
</style>
<div id="blue-triangle">
<p id="white-triangle">
<p id="circle">

1
相反设置border-leftborder-right独立,更好的设置border则减少不必要的一个样border-top:0jsfiddle.net/WF3hP/2
manatwork

是的,我也建议您这样做。它将使您的代码更短。
Timtech

@manatwork,甚至可以通过在第一个div border-bottom-color而不是第二个div border-bottom上进行改进border-top-color。并使用1em代替25px2em代替50px更改大小,但节省了一些字符。
彼得·泰勒

谢谢@manatwork和Pete Taylor。我尝试使用em而不是px,但是如果边框的宽度必须为1px,则很难使圆心居中。
DankoDurbić2013年

身份证真的必须那么长吗?
Timtech

2

R,108个字符

Sven Hohenstein解决方案非常相似,但是在两个有趣的方面有所不同,所以我想我应该添加它:

frame()
p=polygon
p(c(0:3,1:4)/5,c(0:1,0:1,1:2,1:0)/5,c=4)
t=seq(0,2*pi,.1)
p(.2*cos(t)+.4,.2*sin(t)+.2,b=3)

我没有绘制一个大的蓝色三角形和一个小的白色三角形,而是绘制了一个已经代表三个三角形的多边形。至于圆,这个圆(其代码明显比Sven的长)不会在调整大小时失去与三角形的接触。
最后,我没有使用颜色名称,而是在R的默认调色板中使用了它们的编号(蓝色表示4,绿色表示3)。

在此处输入图片说明


1

JavaScript(画布,Firefox),237231个字符

<body onload=with(c=document.all.a.getContext('2d'))fillStyle='#00F',strokeStyle='#0F0',mozFillRule='evenodd',c.f=lineTo,moveTo(4,0),f(8,4),f(0,4),f(2,2),f(6,2),f(4,4),f(2,2),fill(),beginPath(),arc(4,2,2,0,7),stroke()><canvas id=a>

我在尺寸上找不到任何硬性要求,因此我决定稍微滥用一下,并使用8×4像素来缩小代码大小...而且,还依赖Mozilla扩展mozFillRule来获得奇偶填充三力军。

jsbin(小)jsbin(大)


1

SVG 305 296

<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="1 3 9 10">
<path d="M 5,4 2.5,7 7.5,7 5,4 z M 7.5,7 5,10 10,10 7.5,7 z M 5,10 2.5,7 0,10 5,10 z"
fill="#00f" /><path d="m 7.5,7 a 2.5,3 0 0 1 -5,0 2.5,3 0 1 1 5,0 z"
fill="none" stroke="#0f0" stroke-width="0.02" /></svg>

带有SVG绘图的Firefox窗口


我认为style="fill:#00f",您可以使用代替fill="#00f"。其他style的也一样。
Ry-

@minitech:我必须能够通过以下方式将图纸移动另外5个字节1:使用2 to 9而不是3 to 10...的垂直平面图
F. Hauri

1

HTML 118

<svg><path fill=#00f d="M0,2 2,0 4,2 2,2 3,1 1,1 2,2z"/><circle fill=none stroke-width=.1 stroke=#0f0 cx=2 cy=1 r=1 />

1

鼠尾草(CLI),111 106

p=polygon;circle((2,1),1,color=(0,1,0))+p([(0,0),(2,2),(4,0)])+p([(1,1),(3,1),(2,0)],axes=0,color=(1,1,1))

Sage在窗口中创建的图像这是通过Sage命令行界面进行的。(这在Sage Notebook中也有效,但是尽管图像出现在其自己的单元格中,但可能不符合“窗口”的条件。)

编辑:消除了5个减号,并用Sage CLI窗口之一替换了Sage Notebook单元的屏幕快照。(贷方@boothby)


如果.show()从CLI 调用图形对象,它将弹出一个窗口。您也可以通过移动所有内容(+ 2,+ 1)来保存一些字符。
2013年

@boothby-感谢您摆脱掉负号的想法。关于窗口,事实证明,按原样运行程序(不带.show())会从Sage CLI中生成所需的窗口。(当我在虚拟机(Win7 / VirtualBox)上的Linux下运行Sage时,此版本或.show()均不起作用。当我启动Ubuntu并以这种方式运行Sage时,该版本也无法正常工作。
res

0

Golf-Basic 84,36个字符(输出为黑白)

l;0,0,2,0l;0,0,1,1l;2,0,1,1c;1,.5,.5
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.