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.


"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


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


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


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


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.


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

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>

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

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


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)


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


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

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)


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.