Triforce ReBoot [fechado]

10

Vendo como o olá mundo saiu pela culatra terrivelmente, aqui está o mais difícil.

Eu amo Zelda e amo ReBoot.

Crie o seguinte

insira a descrição da imagem aqui

Requisitos:
deve ser uma janela (pode ser QUALQUER janela, mesmo navegadores e similares).
A janela pode ser de qualquer tamanho.
A janela não pode conter mais nada, exceto a imagem.
A janela não deve fechar-se imediatamente.
Os triângulos devem ter qualquer tom de azul.
O círculo deve ter qualquer tom de verde.
O triângulo menor deve tocar nas bordas das
imagens Sem roubo, fornecendo links.

Condição: O código mais curto vence.

PS: Sim, o logotipo do ReBoot é um pouco diferente, mas está próximo o suficiente para torná-lo divertido.

EDIT: eu adicionei outro requisito. Parece que temos muitas pessoas muito geniais que gostam de encontrar brechas: PI amam vocês.

Quillion
fonte
"Triângulos devem ter qualquer tom de amarelo." Conflitos de imagem?
Timtech # 03:
@ Timtech Sinto muito, o texto foi sublinhado como laranja devido a erros de ortografia e pensei em laranja enquanto desejava escrever azul.
Quillion
11
Ok, pelo menos está consertado agora. E eu estou mesmo tentando obter comentários mais curtos - muito golfe código ...
Timtech
Recebo pontos de bônus se a imagem preencher a tela e continuar enquanto eu redimensiono a tela? (Tem de permitir que o círculo para ser uma forma oval, em seguida,)
triturador
Na verdade, lendo os requisitos novamente, o que impede alguém de apenas criar a imagem no paint e fazer um programa ler a imagem? Isso seria apenas algumas linhas em python. Talvez você deva escrever uma regra contra isso #
Cruncher

Respostas:

10

Mathematica 118 119 118 107 97

Edit: Encurtado para 107 caracteres com a ajuda de Belisarius e para 97 com os alefalpha.

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

triângulo

DavidC
fonte
Eu estava com medo que você tivesse me vencido: 3 Mas esse círculo deve ser verde!
Timtech # 03:
Está verde agora. Obrigado por notar.
21413
11
Em 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}]
Dr. belisarius
11
CreateDialog[Graphics@{Blue,Polygon@Outer[Plus,#,#,1]&@{{0,0},{1,1},{2,0}},Green,{2,1}~Circle~1}]
alephalpha
3
Eu recebi uma ajudinha dos meus amigos.
DavidC
7

Dyalog APL ( 121 116 115)

(Editar: use triângulos com 8 elementos de largura em vez de 10, para encurtar um pouco o código)

(Edit 2: eu estava apenas usando , então incluí o ¨na definição de 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

Gráficos? Quem precisa de gráficos?

(Além disso, preto é o plano de fundo padrão, você não disse para alterá-lo)

insira a descrição da imagem aqui

marinus
fonte
4

Script de shell: 166 163 caracteres

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:

Saída de amostra:

Logotipo Triforce ReBoot

homem a trabalhar
fonte
este é mais do que imagemagick shell
mniip
@mniip, certo. Mas como o ImageMagick é principalmente uma biblioteca. Se este fosse um script PHP usando IMagick, o cabeçalho da postagem seria PHP, não ImageMagick. Bem, de acordo com minha lógica. Não sou contra nenhuma melhoria de rumo. De qualquer forma, dois dos três caracteres que estão diminuindo desde a primeira versão estão do lado do shell. :)
manatwork
4

R, 124 , 122 , 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)

Isso produz a seguinte imagem em uma janela de plotagem:

insira a descrição da imagem aqui

Sven Hohenstein
fonte
Eu acho que você pode salvar um personagem escrevendo p=polygon, p(c(1,3,5etc. (BTW, no meu sistema, o tamanho do círculo é diferente dos triângulos quando a janela é redimensionada, e eu tenho que brincar um pouco para fazer com que o círculo cruze o cantos do "quadrado".)
res
@res Obrigado pela dica. O tamanho do círculo é a principal desvantagem desta solução. Não consegui descobrir um código curto para resolver esse problema.
Sven Hohenstein
@ plannapus Ótima idéia, obrigado! Isso salvou 11 caracteres.
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();
    }
}

golfed

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

Quem sabia que o golfe reduz muito o código.

EDIT: Obrigado manatwork por todas as suas sugestões.

Quillion
fonte
11
Golf seu código.
Kevin Cox
Você ainda tem espaços inúteis após vírgulas do separador de parâmetros. E use o bloco de código em vez da marcação de código embutido, para que scripts como o Code Golf UserScript Enhancement Pack possam reconhecê-lo como código e exibir seu tamanho.
manatwork
3

Linguagem do Game Maker, 167 165 155

EDIÇÃO 1 - Raspei dois caracteres substituindo c_greenpor32768 o mesmo valor. Os valores da outra cor eram maiores que os nomes predefinidos.

EDIÇÃO 2 - Golfe épico! Variáveis ​​usadas para valores usados ​​com frequência e esquecemos que as novas linhas não são necessárias (as novas linhas contam como dois espaços).

A sala ( r) é predefinida de 64 por 32 com um fundo branco. O objeto destá em qualquer lugar da sala r. Código do evento Draw:

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)

Resultado:

Saída da sala r

Ti84-Basic - 54 caracteres (mas a saída é em preto e branco)

:Line(0,0,2,0
:Line(0,0,1,1
:Line(2,0,1,1
:Circle(1,.5,.5
Timtech
fonte
Nenhuma imagem usada!
Timtech # 03:
A figura aparece em sua própria janela?
31413 DavidC
@DavidCarraher Sim. Eu usei a captura de tela no jogo, para que a janela não apareça.
Timtech # 03:
Você usou draw_set_colortrês vezes. Você não pode salvar caracteres com algo assim d=draw_set_character?
DavidC
@DavidCarraher Eu já tentei isso; Não funciona :( GML fica meio por vezes teimosos.
Timtech
2

HTML, 101

<img style=position:absolute;clip:rect(30px,130px,110px,20px) src=http://i.stack.imgur.com/iE6m9.png>
Danko Durbić
fonte
2
Há um novo requisito - "Não é possível roubar imagens fornecendo links".
Timtech # 03:
Eu aposto que você poderia bater que com um simples: http://someshort.url(... e que isso iria criar outro requisito também)
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/

Ungolfed:

<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">
Danko Durbić
fonte
11
Em vez de configuração border-lefte border-rightseparadamente, melhor definido borderem seguida, reduzir o desnecessário como border-top:0: jsfiddle.net/WF3hP/2
manatwork
Sim, eu recomendaria isso também. Isso tornará seu código mais curto.
Timtech
@manatwork, mesmo isso pode ser melhorado com em border-bottom-colorvez de border-bottomna primeira div e da mesma forma border-top-colorna segunda div. E usar em 1emvez de 25pxe em 2emvez de 50pxaltera o tamanho, mas salva alguns caracteres.
Peter Taylor
Obrigado, @manatwork e Pete Taylor. Tentei usá-los em vez de px, mas é difícil centralizar o círculo se a borda tiver 1px de largura.
Danko Durbić 29/11
A identificação realmente precisa ser tão longa?
Timtech
2

R, 108 caracteres

Muito semelhante à solução de Sven Hohenstein, mas difere em dois pontos interessantes, então pensei em adicioná-la:

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)

Em vez de desenhar um grande triângulo azul e um pequeno branco, desenho um polígono que já representa os três triângulos. Quanto ao círculo, este (cujo código é claramente mais longo que o de Sven) não perde seus contatos com os triângulos no redimensionamento.
Finalmente, em vez de usar os nomes das cores, usei o número na paleta de cores padrão de R (4 para azul e 3 para verde).

insira a descrição da imagem aqui

plannapus
fonte
1

JavaScript (canvas, Firefox), 237 231 caracteres

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

Como não encontrei nenhum requisito rígido nas dimensões, decidi abusar um pouco disso e usar 8 × 4 pixels para reduzir o tamanho do código ... além disso, confia na extensão mozFillRule da Mozilla para obter um preenchimento ímpar para a triforce.

jsbin (pequeno) , jsbin (maior)

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

Janela do Firefox com svg draw

F. Hauri
fonte
Em vez de style="fill:#00f", você pode usar fill="#00f", eu acho. O mesmo para os outros styles.
Ry-
@minitech: Eu devo ser capaz de salvar mais 5 bytes no deslocamento deste elaboração por 1: ter plano vertical a partir 2 to 9em vez de 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 />
martelo de lobo
fonte
1

Sábio (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))

imagem na janela criada por SageIsso é via interface de linha de comando do Sage. (Isso funciona também em um Sage Notebook, mas embora a imagem apareça em sua própria célula, isso provavelmente não se qualifica como uma "janela".)

EDIT: Eliminou 5 sinais de menos e substituiu a captura de tela de uma célula do Sage Notebook por uma de uma janela da Sage CLI. (Crédito @ boothby)

res
fonte
Se você ligar .show() um objeto gráfico da CLI, ele abrirá uma janela. Além disso, você pode salvar alguns caracteres deslocando tudo (+ 2, + 1).
usar o seguinte comando
@ boothby - Obrigado pela idéia de se livrar dos sinais de menos. Sobre a janela, verifica-se que a execução do programa como está (sem .show ()) produz a janela desejada a partir do Sage CLI. (Nem esta nem a versão .show () funcionam quando eu executo o Sage no Linux em uma máquina virtual (Win7 / VirtualBox). Funciona bem quando eu inicializo o Ubuntu e executei o Sage dessa maneira.)
Res #
0

Golfe básico 84, 36 caracteres (a saída é em preto e branco)

l;0,0,2,0l;0,0,1,1l;2,0,1,1c;1,.5,.5
Timtech
fonte