Triforce ReBoot [geschlossen]

10

Zu sehen, wie die Hallo Welt furchtbar nach hinten losgegangen ist, ist hier schwieriger.

Ich liebe Zelda und ich liebe ReBoot.

Erstellen Sie Folgendes

Geben Sie hier die Bildbeschreibung ein

Anforderungen:
Es muss ein Fenster sein (kann JEDES Fenster sein, auch Browser und so).
Das Fenster kann beliebig groß sein.
Das Fenster darf außer dem Bild nichts anderes enthalten.
Das Fenster sollte sich nicht sofort schließen.
Dreiecke müssen einen beliebigen Blauton haben.
Der Kreis muss einen beliebigen Grünton haben.
Ein kleineres Dreieck muss die Kanten der
Bilder ohne Diebstahl berühren , indem Links bereitgestellt werden.

Bedingung: Der kürzeste Code gewinnt.

PS: Ja, das ReBoot-Logo ist etwas anders, aber es ist nah genug, um Spaß zu machen.

EDIT: Ich habe eine weitere Anforderung hinzugefügt. Es scheint, als hätten wir viele sehr geniale Leute, die gerne Lücken finden: PI liebt euch.

Billionen
quelle
"Dreiecke müssen einen beliebigen Gelbton haben." Bildkonflikte?
Timtech
@ Timtech Es tut mir leid, der Text wurde aufgrund von Rechtschreibfehlern als orange unterstrichen und ich dachte orange, während ich blau schreiben wollte.
Quillion
1
Okay, zumindest ist es jetzt behoben. Und ich versuche sogar, kürzere Kommentare zu bekommen - zu viel Code-Golf ...
Timtech
Erhalte ich Bonuspunkte, wenn das Bild den Bildschirm ausfüllt und ich die Größe des Bildschirms weiter verändere? (Sie müssen dann zulassen, dass der Kreis ein Oval ist)
Cruncher
Was hindert jemanden daran, das Bild nur in Farbe zu erstellen und ein Programm das Bild lesen zu lassen? Dies wären nur ein paar Zeilen in Python. Vielleicht sollten Sie eine Regel dagegen schreiben
Cruncher

Antworten:

10

Mathematica 118 119 118 107 97

Bearbeiten: Mit Hilfe von Belisarius auf 107 Zeichen und mit Alephalpha auf 97 Zeichen verkürzt.

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

Dreieck

DavidC
quelle
Ich hatte Angst, du hättest mich geschlagen: 3 Aber dieser Kreis muss grün sein!
Timtech
Es ist jetzt grün. Vielen Dank für die Notiz.
DavidC
1
In 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}]
Alephhalpha
3
Ich habe ein bisschen Hilfe von meinen Freunden bekommen.
DavidC
7

Dyalog APL ( 121 116 115)

(Bearbeiten: Verwenden Sie Dreiecke mit einer Breite von 8 statt 10 Elementen, um den Code etwas zu verkürzen.)

(Edit 2: Ich habe immer nur verwendet , also ¨in die Definition von aufgenommen 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

Grafik? Wer braucht Grafiken?

(Außerdem ist Schwarz der Standardhintergrund, Sie haben nicht gesagt, dass Sie ihn ändern sollen.)

Geben Sie hier die Bildbeschreibung ein

Marinus
quelle
4

Shell-Skript: 166 163 Zeichen

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:

Beispielausgabe:

Triforce ReBoot-Logo

Mann bei der Arbeit
quelle
Dies ist mehr Imagemagick als Shell
Mniip
@mniip, richtig. Da ImageMagick aber in erster Linie eine Bibliothek ist. Wenn dies ein PHP-Skript mit IMagick wäre, würde die Post-Überschrift PHP und nicht ImageMagick lauten. Nun, nach meiner Logik. Ich bin nicht gegen eine Überschriftenverbesserung. Trotzdem befinden sich 2 der 3 Zeichen, die seit der ersten Version verkürzt wurden, auf der Shell-Seite. :)
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)

Dies erzeugt das folgende Bild in einem Plotfenster:

Geben Sie hier die Bildbeschreibung ein

Sven Hohenstein
quelle
Ich glaube , Sie ein Zeichen , indem er speichern können p=polygon, dann p(c(1,3,5usw. (BTW, auf meinem System, die Kreisgrößenskalen anders als die Dreiecken , wenn die Fenstergröße verändert wird, und ich habe mit ihm ein wenig zu spielen , um den Kreis zu bekommen das schneiden Ecken des "Quadrats".)
Res
@res Danke für den Tipp. Die Größe des Kreises ist der Hauptnachteil dieser Lösung. Ich konnte keinen kurzen Code finden, um dieses Problem zu lösen.
Sven Hohenstein
@plannapus Tolle Idee, danke! Dies sparte 11 Zeichen.
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 gespielt

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

Wer wusste, dass Golfen den Code so sehr reduziert.

EDIT: Danke manatwork für all deine Vorschläge.

Billionen
quelle
1
Bitte spielen Sie Ihren Code.
Kevin Cox
Nach den Parametertrennzeichen stehen immer noch unbrauchbare Leerzeichen. Und bitte verwenden Sie den Codeblock anstelle des Inline-Code- Markups , damit Skripte wie das Code Golf UserScript Enhancement Pack ihn als Code erkennen und seine Größe anzeigen können.
Manatwork
3

Game Maker Language, 167 165 155

BEARBEITEN 1 - Ich habe zwei Zeichen durch Ersetzen c_greendurch 32768denselben Wert rasiert . Die Werte der anderen Farbe waren länger als ihre vordefinierten Namen.

EDIT 2 - Episches Golf! Verwendete Variablen für häufig verwendete Werte und vergessen, dass Zeilenumbrüche nicht benötigt werden (Zeilenumbrüche zählen als zwei Leerzeichen).

Der Raum ( r) ist 64 mal 32 vordefiniert und hat einen weißen Hintergrund. Objekt dist überall im Raum r. Ereigniscode zeichnen:

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)

Ergebnis:

Raumausgabe r

Ti84-Basic - 54 Zeichen (die Ausgabe erfolgt jedoch in Schwarzweiß)

:Line(0,0,2,0
:Line(0,0,1,1
:Line(2,0,1,1
:Circle(1,.5,.5
Timtech
quelle
Keine Bilder verwendet!
Timtech
Erscheint die Figur in einem eigenen Fenster?
DavidC
@ DavidCarraher Ja. Ich habe die Bildschirmaufnahme im Spiel verwendet, sodass das Fenster nicht angezeigt wird.
Timtech
Du hast draw_set_colordreimal benutzt. Kannst du Charaktere nicht durch so etwas speichern d=draw_set_character?
DavidC
@ DavidCarraher Das habe ich schon versucht; es funktioniert nicht :( GML wird manchmal etwas stur.
Timtech
2

HTML, 101

<img style=position:absolute;clip:rect(30px,130px,110px,20px) src=http://i.stack.imgur.com/iE6m9.png>
Danko Durbić
quelle
2
Es gibt eine neue Anforderung: "Kein Diebstahl von Bildern durch Bereitstellung von Links."
Timtech
Ich wette, Sie könnten das mit einem einfachen: http://someshort.url(... und dass dies auch eine andere Anforderung schaffen würde)
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ć
quelle
1
Anstatt zu setzen border-leftund border-rightseparat zu setzen, besser zu setzen borderals zu reduzieren, wie border-top:0: jsfiddle.net/WF3hP/2
Manatwork
Ja, das würde ich auch empfehlen. Dadurch wird Ihr Code kürzer.
Timtech
@manatwork, auch das kann mit border-bottom-coloranstatt border-bottomauf dem ersten div und ähnlich border-top-colorauf dem zweiten div verbessert werden . Wenn Sie 1emanstelle von 25pxund 2emanstelle von 50pxÄnderungen verwenden, wird die Größe geändert, es werden jedoch einige Zeichen gespeichert.
Peter Taylor
Danke, @manatwork & Pete Taylor. Ich habe versucht, em anstelle von px zu verwenden, aber es ist schwierig, den Kreis zu zentrieren, wenn sein Rand 1px breit sein muss.
Danko Durbić
Müssen die Ausweise wirklich so lang sein?
Timtech
2

R, 108 Zeichen

Sehr ähnlich der Sven Hohenstein-Lösung , unterscheidet sich jedoch in zwei interessanten Punkten, sodass ich dachte, ich würde sie hinzufügen:

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)

Anstatt ein großes blaues und ein kleines weißes Dreieck zu zeichnen, zeichne ich ein Polygon, das bereits die drei Dreiecke darstellt. Der Kreis (dessen Code deutlich länger ist als der von Sven) verliert beim Ändern der Größe nicht die Kontakte zu den Dreiecken.
Schließlich habe ich anstelle der Farbnamen deren Nummer in der Standardfarbpalette von R verwendet (4 für Blau und 3 für Grün).

Geben Sie hier die Bildbeschreibung ein

Planapus
quelle
1

JavaScript ( Zeichenfläche , Firefox), 237 231 Zeichen

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

Ich konnte keine harten Anforderungen an die Abmessungen finden, also habe ich mich entschlossen, diese ein wenig zu missbrauchen und 8 × 4 Pixel zu verwenden, um die Codegröße zu verringern. Außerdem ist ich auf die Mozilla-Erweiterung mozFillRule angewiesen, um eine gerade oder ungerade Füllung zu erhalten die Triforce.

jsbin (klein) , jsbin (größer)

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

Firefox-Fenster mit SVG-Draw

F. Hauri
quelle
Anstelle von style="fill:#00f", können Sie verwenden fill="#00f", denke ich. Gleiches gilt für die anderen styles.
Ry
@minitech: Ich muss in der Lage sein, 5 weitere Bytes beim Verschieben dieser Zeichnung zu sparen, indem 1ich: vertikalen Plan von 2 to 9statt 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 />
Wolfshammer
quelle
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))

Bild im Fenster von Sage erstelltDies erfolgt über die Sage-Befehlszeilenschnittstelle. (Dies funktioniert auch in einem Sage Notebook, aber obwohl das Bild in einer eigenen Zelle angezeigt wird, gilt dies wahrscheinlich nicht als "Fenster".)

BEARBEITEN: 5 Minuszeichen wurden entfernt und der Screenshot einer Sage Notebook-Zelle durch eines eines Sage CLI-Fensters ersetzt. (Credit @boothby)

res
quelle
Wenn Sie .show()ein Grafikobjekt über die CLI aufrufen , wird ein Fenster geöffnet. Sie können auch einige Zeichen speichern, indem Sie alles verschieben (+ 2, + 1).
Standby
@boothby - Danke für die Idee, die Minuszeichen loszuwerden. Über das Fenster stellt sich heraus, dass das Ausführen des Programms wie es ist (ohne .show ()) das gewünschte Fenster über die Sage CLI erzeugt. (Weder diese noch die .show () -Version funktionieren, wenn ich Sage unter Linux in einer virtuellen Maschine (Win7 / VirtualBox) ausführe. Funktioniert einwandfrei, wenn ich Ubuntu hochfahre und Sage auf diese Weise ausführe.) Vielen Dank für den Anstoß, die CLI auszuprobieren.
Res
0

Golf-Basic 84, 36 Zeichen (Ausgabe ist Schwarzweiß)

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