Triforce ReBoot [cerrado]

10

Al ver cómo Hello World ha fracasado terriblemente, aquí hay uno más difícil.

Amo a Zelda y amo ReBoot.

Crea lo siguiente

ingrese la descripción de la imagen aquí

Requisitos:
debe ser una ventana (puede ser CUALQUIER ventana incluso navegadores y demás).
La ventana puede ser de cualquier tamaño.
La ventana no puede contener nada más que la imagen.
La ventana no debe cerrarse de inmediato.
Los triángulos deben ser de cualquier tono de azul.
El círculo debe ser de cualquier tono de verde.
Un triángulo más pequeño debe tocar los bordes de
No robar imágenes al proporcionar enlaces.

Condición: el código más corto gana.

PD: Sí, el logotipo de ReBoot es ligeramente diferente, pero está lo suficientemente cerca como para que sea divertido.

EDITAR: agregué otro requisito. Parece que tenemos muchas personas muy geniales que disfrutan encontrando lagunas: PI los amo chicos.

Quillion
fuente
"Los triángulos deben ser de cualquier tono de amarillo". Conflictos de imagen?
Timtech
@Timtech Lo siento, el texto se subrayó en naranja debido a la falta de ortografía y pensé en naranja mientras quería escribir en azul.
Quillion
1
Bien, al menos está arreglado ahora. E incluso estoy tratando de obtener comentarios más cortos - demasiado código de golf ...
Timtech
¿Recibo puntos de bonificación si la imagen llena la pantalla y continúa mientras cambio el tamaño de la pantalla? (Tienes que permitir que el círculo sea un óvalo entonces)
Cruncher
En realidad, leyendo los requisitos nuevamente, ¿qué impide que alguien simplemente cree la imagen en pintura y haga que un programa lea la imagen? Esto solo sería un par de líneas en python. Quizás deberías escribir una regla en contra de eso
Cruncher

Respuestas:

10

Mathematica 118119118107 97

Editar: se acortó a 107 caracteres con la ayuda de Belisario y a 97 con alephalpha.

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

triángulo

DavidC
fuente
Tenía miedo de que me hubieras vencido: 3 ¡Pero ese círculo tiene que ser verde!
Timtech
Es verde ahora. Gracias por notarlo.
DavidC
1
En 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. belisario
1
CreateDialog[Graphics@{Blue,Polygon@Outer[Plus,#,#,1]&@{{0,0},{1,1},{2,0}},Green,{2,1}~Circle~1}]
alephalpha
3
Recibí un poco de ayuda de mis amigos.
DavidC
7

Dyalog APL ( 121 116 115)

(Editar: use triángulos de 8 elementos de ancho en lugar de 10, para acortar un poco el código)

(Edición 2: solo estaba usando alguna vez , así que incluí el ¨en la definición 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? ¿Quién necesita gráficos?

(Además, el negro es el fondo predeterminado, no dijiste que lo cambiaras)

ingrese la descripción de la imagen aquí

marinus
fuente
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:

Salida de muestra:

Logotipo de Triforce ReBoot

hombre trabajando
fuente
esto es más una imagen
mágica
@mniip, a la derecha. Pero como ImageMagick es principalmente una biblioteca. Si se trata de un script PHP que usa IMagick, el encabezado de la publicación diría PHP, no ImageMagick. Bueno, según mi lógica. No estoy en contra de ninguna mejora de rumbo. Pero de todos modos, 2 de los 3 caracteres de acortamiento desde la primera versión están en el lado del 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)

Esto produce la siguiente imagen en una ventana de trazado:

ingrese la descripción de la imagen aquí

Sven Hohenstein
fuente
Creo que puedes guardar un personaje escribiendo p=polygon, luego p(c(1,3,5etc. (Por cierto, en mi sistema, el tamaño del círculo se escala de manera diferente a los triángulos cuando se cambia el tamaño de la ventana, y tengo que jugar un poco con él para que el círculo se cruce con el esquinas del "cuadrado".)
res
@res Gracias por el consejo. El tamaño del círculo es el principal inconveniente de esta solución. No pude encontrar un código corto para resolver este problema.
Sven Hohenstein
@plannapus Gran idea, gracias! Esto salvó 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();
    }
}

golf

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

Quién sabía que el golf reduce tanto el código.

EDITAR: Gracias manatwork por todas sus sugerencias.

Quillion
fuente
1
Por favor golf su código.
Kevin Cox
Todavía tiene espacios inútiles después de las comas de separación de parámetros. Y utilice el bloque de código en lugar del marcado de código en línea, de modo que los scripts como Code Golf UserScript Enhancement Pack puedan reconocerlo como código y mostrar su tamaño.
manatwork
3

Game Maker Language, 167 165 155

EDITAR 1: eliminé dos caracteres reemplazándolos c_greencon 32768el mismo valor. Los valores del otro color eran más largos que sus nombres predefinidos.

EDIT 2 - ¡Golf épico! Variables usadas para valores usados ​​frecuentemente, y olvidé que no se necesitan nuevas líneas (las nuevas líneas cuentan como dos espacios).

La sala ( r) está predefinida 64 por 32 con un fondo blanco. El objeto destá en cualquier parte de la habitación r. Dibujar código de evento:

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:

Salida de sala r

Ti84-Basic: 54 caracteres (pero la salida es en blanco y negro)

:Line(0,0,2,0
:Line(0,0,1,1
:Line(2,0,1,1
:Circle(1,.5,.5
Timtech
fuente
¡No se usaron fotos!
Timtech
¿La figura aparece en su propia ventana?
DavidC
@DavidCarraher Sí. Utilicé la captura de pantalla en el juego, por lo que la ventana no aparece.
Timtech
Usaste draw_set_colortres veces. ¿No puedes salvar personajes por algo así d=draw_set_character?
DavidC
@DavidCarraher Ya lo intenté; no funciona :( GML se pone algo terco a veces.
Timtech
2

HTML, 101

<img style=position:absolute;clip:rect(30px,130px,110px,20px) src=http://i.stack.imgur.com/iE6m9.png>
Danko Durbić
fuente
2
Hay un nuevo requisito: "No robar imágenes al proporcionar enlaces".
Timtech
Apuesto a que podrías superar eso con un simple: http://someshort.url(... y que esto también crearía otro requisito)
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/

Sin golf:

<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ć
fuente
1
En lugar de configurar border-lefty por border-rightseparado, mejor configurar y borderluego reducir el innecesario como border-top:0: jsfiddle.net/WF3hP/2
manatwork
Sí, también lo recomendaría. Hará que su código sea más corto.
Timtech
@manatwork, incluso eso se puede mejorar en border-bottom-colorlugar de border-bottomen el primer div y de manera similar border-top-coloren el segundo div. Y usar en 1emlugar de 25pxy en 2emlugar de 50pxcambia el tamaño pero guarda algunos caracteres.
Peter Taylor
Gracias, @manatwork y Pete Taylor. Intenté usar em en lugar de px, pero es difícil centrar el círculo si su borde tiene que tener 1px de ancho.
Danko Durbić
¿La identificación realmente tiene que ser tan larga?
Timtech
2

R, 108 caracteres

Muy similar a la solución de Sven Hohenstein, pero difiere en dos puntos interesantes, así que pensé en agregarlo:

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)

En lugar de dibujar un triángulo azul grande y uno blanco pequeño, dibujo un polígono que ya representa los tres triángulos. En cuanto al círculo, este (cuyo código es claramente más largo que el de Sven) no pierde sus contactos con los triángulos al cambiar el tamaño.
Finalmente, en lugar de usar los nombres de color, usé su número en la paleta de colores predeterminada de R (4 para azul y 3 para verde).

ingrese la descripción de la imagen aquí

plannapus
fuente
1

JavaScript (lienzo, 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>

No pude encontrar ningún requisito difícil sobre las dimensiones, así que decidí abusar de eso un poco e ir con 8 × 4 píxeles para reducir el tamaño del código ... también, confía en la extensión Mozilla mozFillRule para obtener un relleno impar para la trifuerza

jsbin (pequeño) , jsbin (más grande)

Luciérnaga
fuente
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>

Ventana de Firefox con dibujo de svg

F. Hauri
fuente
En lugar de style="fill:#00f", puedes usar fill="#00f", creo. Lo mismo para el otro styles.
Ry-
@minitech: Debo poder guardar 5 bytes más al cambiar este dibujo 1: teniendo un plano vertical en 2 to 9lugar 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 />
martillo de lobo
fuente
1

Salvia (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))

imagen en la ventana creada por SageEsto es a través de la interfaz de línea de comandos de Sage. (Esto funciona también en un Sage Notebook, pero aunque la imagen aparece en su propia celda, eso probablemente no califica como una "ventana").

EDITAR: eliminó 5 signos menos y reemplazó la captura de pantalla de una celda de Sage Notebook con una de una ventana de Sage CLI. (Crédito @boothby)

res
fuente
Si llama .show()a un objeto gráfico desde la CLI, aparecerá una ventana emergente. También puede guardar algunos caracteres cambiando todo (+ 2, + 1).
stand el
@boothby: gracias por la idea de deshacerme de los signos menos. Sobre la ventana, resulta que ejecutar el programa tal como está (sin .show ()) produce la ventana deseada desde la CLI de Sage. (Ni esta ni la versión .show () funcionan cuando ejecuto Sage bajo Linux en una máquina virtual (Win7 / VirtualBox). Funciona bien cuando inicio Ubuntu y ejecuto Sage de esa manera.) Gracias por el empujón para probar la CLI.
res
0

Golf-Basic 84, 36 caracteres (la salida es en blanco y negro)

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