Triforce ReBoot [chiuso]


10

Vedendo come il mondo di ciao ha fallito terribilmente, eccone uno più difficile.

Adoro Zelda e adoro ReBoot.

Crea quanto segue

inserisci qui la descrizione dell'immagine

Requisiti:
deve essere una finestra (può essere QUALSIASI finestra anche browser e simili).
La finestra può essere di qualsiasi dimensione.
La finestra non può contenere nient'altro che l'immagine.
La finestra non dovrebbe chiudersi immediatamente.
I triangoli devono essere di qualsiasi tonalità di blu.
Il cerchio deve essere di qualsiasi tonalità di verde.
Un triangolo più piccolo deve toccare i bordi delle
immagini Non rubare fornendo collegamenti.

Condizione: il codice più corto vince.

PS: Sì, il logo ReBoot è leggermente diverso, ma è abbastanza vicino da renderlo divertente.

EDIT: ho aggiunto un altro requisito. Sembra che abbiamo un sacco di persone molto geniali che si divertono a trovare scappatoie: PI ti amo ragazzi.


"I triangoli devono essere di qualsiasi tonalità di giallo." Conflitti di immagini?
Timtech,

@Timtech Mi dispiace, il testo è stato sottolineato in arancione a causa di errori di ortografia e ho pensato all'arancione mentre volevo scrivere in blu.
Quillion

1
Ok, almeno adesso è stato risolto. E sto anche cercando di ottenere commenti più brevi - troppo golf a codice ...
Timtech,

Ottengo punti bonus se l'immagine riempie lo schermo e continua a ridimensionare lo schermo? (Devi consentire al cerchio di essere un ovale allora)
Cruncher,

In realtà leggendo di nuovo i requisiti, cosa impedisce a qualcuno di creare semplicemente l'immagine in paint e di far leggere un programma a un programma? Questo sarebbe solo un paio di righe in Python. Forse dovresti scrivere una regola contro questo
Cruncher,

Risposte:


10

Mathematica 118 119 118 107 97

Modifica: accorciato a 107 caratteri con l'aiuto di Belisario e 97 con alephalpha.

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

triangolo


Avevo paura che mi avessi battuto: 3 Ma quel cerchio deve essere verde!
Timtech,

Adesso è verde. Grazie per averlo notato.
DavidC,

1
Nel 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,

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

3
Ho ricevuto un piccolo aiuto dai miei amici.
DavidC

7

Dyalog APL ( 121 116 115 115)

(Modifica: usa triangoli larghi 8 elementi anziché 10, per abbreviare un po 'il codice)

(Modifica 2: stavo usando sempre e solo , quindi incluso il ¨nella definizione di 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

Grafica? Chi ha bisogno della grafica?

(Inoltre, il nero è lo sfondo predefinito, non hai detto di cambiarlo)

inserisci qui la descrizione dell'immagine


4

Script shell: 166 163 caratteri

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:

Uscita campione:

Logo Triforce ReBoot


si tratta più di immagini che di shell
mniip

@mniip, giusto. Ma poiché ImageMagick è principalmente una libreria. Se questo fosse uno script PHP che utilizzava IMagick, l'intestazione del post diceva PHP, non ImageMagick. Bene, secondo la mia logica. Non sono contrario a nessun miglioramento di rotta. Ma comunque, 2 dei 3 caratteri accorciati dalla prima versione sono sul lato 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)

Questo produce la seguente immagine in una finestra della trama:

inserisci qui la descrizione dell'immagine


Penso che puoi salvare un personaggio scrivendo p=polygon, quindi p(c(1,3,5ecc. (A proposito, sul mio sistema, la dimensione del cerchio si ridimensiona in modo diverso rispetto ai triangoli quando la finestra viene ridimensionata e devo giocarci un po 'per far sì che il cerchio si intersechi con il angoli della "piazza".)
ris

@res Grazie per il suggerimento. La dimensione del cerchio è il principale svantaggio di questa soluzione. Non sono riuscito a capire un codice breve per risolvere questo problema.
Sven Hohenstein,

@plannapus Ottima idea, grazie! Ciò ha salvato 11 caratteri.
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();}}

Chi sapeva il golf riduce così tanto il codice.

EDIT: grazie manatwork per tutti i tuoi suggerimenti.


1
Si prega di golf il tuo codice.
Kevin Cox,

Hai ancora spazi inutili dopo le virgole di separazione dei parametri. E si prega di utilizzare il blocco di codice anziché il markup del codice in linea, in modo che script come Code Golf UserScript Enhancement Pack possano riconoscerlo come codice e visualizzarne le dimensioni.
arte

3

Lingua di Game Maker, 167 165 155

EDIT 1 - Ho eliminato due caratteri sostituendoli c_greencon 32768lo stesso valore. I valori dell'altro colore erano più lunghi dei loro nomi predefiniti.

EDIT 2 - Epic golf! Variabili utilizzate per i valori utilizzati di frequente e dimentica che non sono necessarie nuove righe (le nuove righe vengono conteggiate come due spazi).

La room ( r) è predefinita 64 per 32 con uno sfondo bianco. L'oggetto dè ovunque nella stanza r. Disegna codice 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)

Risultato:

Uscita della stanza r

Ti84-Basic - 54 caratteri (ma l'output è in bianco e nero)

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

Nessuna immagine utilizzata!
Timtech,

La figura appare nella sua finestra?
David C

@DavidCarraher Sì. Ho usato la cattura dello schermo durante il gioco, quindi la finestra non viene visualizzata.
Timtech,

Hai usato draw_set_colortre volte. Non puoi salvare personaggi con qualcosa del genere d=draw_set_character?
David C

@DavidCarraher L'ho già provato; non funziona :( A volte GML diventa un po 'testardo.
Timtech,

2

HTML, 101

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

2
C'è un nuovo requisito: "Non rubare immagini fornendo link".
Timtech,

Scommetto che potresti batterlo con un semplice: http://someshort.url(... e che ciò creerebbe anche un altro 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/

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

1
Invece di impostare border-lefte border-rightseparatamente, impostare meglio borderquindi ridurre quello non necessario come border-top:0: jsfiddle.net/WF3hP/2
manatwork

Sì, lo consiglierei anche a me. Ridurrà il tuo codice.
Timtech,

@manatwork, anche quello può essere migliorato border-bottom-colorinvece che border-bottomsul primo div e allo stesso modo border-top-colorsul secondo div. E usando 1eminvece di 25pxe 2eminvece di 50pxmodificare le dimensioni ma salva alcuni caratteri.
Peter Taylor,

Grazie, @manatwork e Pete Taylor. Ho provato a usare em invece di px, ma è difficile centrare il cerchio se il suo bordo deve essere largo 1px.
Danko Durbić,

L'id deve essere davvero così lungo?
Timtech,

2

R, 108 caratteri

Molto simile alla soluzione di Sven Hohenstein ma differisce in due punti interessanti, quindi ho pensato di aggiungerlo:

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)

Invece di disegnare un grande triangolo blu e uno piccolo bianco, disegno un poligono che rappresenta già i tre triangoli. Per quanto riguarda il cerchio, questo (il cui codice è chiaramente più lungo di quello di Sven) non perde i suoi contatti con i triangoli al ridimensionamento.
Infine, invece di usare i nomi dei colori, ho usato il loro numero nella tavolozza colori predefinita di R (4 per il blu e 3 per il verde).

inserisci qui la descrizione dell'immagine


1

JavaScript (canvas, Firefox), 237 231 caratteri

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

Non sono riuscito a trovare alcun requisito rigido sulle dimensioni, quindi ho deciso di abusarne un po 'e andare con 8 × 4 pixel per ridurre la dimensione del codice ... inoltre, si basa sull'estensione mozFillRule di Mozilla per ottenere un riempimento pari-dispari per il triforce.

jsbin (piccolo) , jsbin (più grande)


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>

Finestra di Firefox con svg draw


Invece di style="fill:#00f", puoi usare fill="#00f", penso. Lo stesso per gli altri style.
Ry,

@minitech: Devo essere in grado di salvare altri 5 byte spostando questo disegno 1: avendo piano verticale 2 to 9invece di 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

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

immagine nella finestra creata da SageQuesto avviene tramite l'interfaccia della riga di comando di Sage. (Funziona anche in un Sage Notebook, ma sebbene l'immagine appaia nella sua cella, probabilmente non si qualifica come una "finestra".)

EDIT: eliminati 5 segni meno e sostituito lo screenshot di una cella Sage Notebook con una di una finestra Sage CLI. (Credito @boothby)


Se si chiama .show()un oggetto grafico dalla CLI, verrà visualizzata una finestra. Inoltre puoi salvare alcuni personaggi spostando tutto (+ 2, + 1).
stand

@boothby - Grazie per l'idea di sbarazzarti dei segni negativi. A proposito della finestra, si scopre che l'esecuzione del programma così com'è (senza .show ()) produce la finestra desiderata dall'interfaccia della riga di comando di Sage. (Né questa né la versione .show () funzionano quando eseguo Sage sotto Linux in una macchina virtuale (Win7 / VirtualBox). Funziona bene quando avvio Ubuntu ed eseguo Sage in quel modo.) Grazie per la spinta a provare la CLI.
res

0

Golf-Basic 84, 36 caratteri (l'output è in bianco e nero)

l;0,0,2,0l;0,0,1,1l;2,0,1,1c;1,.5,.5
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.