Triforce ReBoot [fermé]

10

Voyant à quel point bonjour le monde a terriblement échoué, voici un plus difficile.

J'adore Zelda et j'adore ReBoot.

Créez ce qui suit

entrez la description de l'image ici

Exigences:
Ce doit être une fenêtre (peut être N'IMPORTE QUELLE fenêtre, même des navigateurs et autres).
La fenêtre peut être de n'importe quelle taille.
La fenêtre ne peut contenir rien d'autre que l'image.
La fenêtre ne doit pas se fermer tout de suite.
Les triangles doivent être de n'importe quelle nuance de bleu.
Le cercle doit être de n'importe quelle nuance de vert.
Le petit triangle doit toucher les bords des
images No stealing en fournissant des liens.

Condition: le code le plus court gagne.

PS: Oui, le logo ReBoot est légèrement différent mais c'est assez proche pour le rendre amusant.

EDIT: J'ai ajouté une autre exigence. Il semble que nous ayons beaucoup de gens très géniaux qui aiment trouver des failles: PI vous aime les gars.

Quillion
la source
"Les triangles doivent être de n'importe quelle nuance de jaune." Conflits d'images?
Timtech
@Timtech Je suis désolé, le texte a été souligné en orange en raison d'une faute d'orthographe et j'ai pensé orange en voulant écrire en bleu.
Quillion
1
D'accord, au moins c'est corrigé maintenant. Et j'essaie même d'obtenir des commentaires plus courts - trop de code pour jouer au golf ...
Timtech
Est-ce que j'obtiens des points bonus si l'image remplit l'écran et continue à mesure que je redimensionne l'écran? (Vous devez alors permettre au cercle d'être ovale)
Cruncher
En fait, en lisant à nouveau les exigences, qu'est-ce qui empêche quelqu'un de simplement créer l'image dans la peinture et de faire lire un programme à l'image? Ce ne serait que quelques lignes en python. Vous devriez peut-être écrire une règle contre cela
Cruncher

Réponses:

10

Mathematica 118119118107 97

Edit: raccourci à 107 caractères avec l'aide de Bélisaire et à 97 avec alephalpha.

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

Triangle

DavidC
la source
J'avais peur que tu m'ait battu: 3 Mais ce cercle doit être vert!
Timtech
C'est vert maintenant. Merci de l'avoir noté.
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 belisarius
1
CreateDialog[Graphics@{Blue,Polygon@Outer[Plus,#,#,1]&@{{0,0},{1,1},{2,0}},Green,{2,1}~Circle~1}]
alephalpha
3
J'ai obtenu un peu d'aide de mes amis.
DavidC
7

Dyalog APL ( 121 116 115)

(Edit: utilisez des triangles de 8 éléments de large au lieu de 10, pour raccourcir un peu le code)

(Edit 2: Je n'utilisais que jamais , donc inclus le ¨dans la définition 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

Graphique? Qui a besoin de graphiques?

(En outre, le noir est l'arrière-plan par défaut, vous n'avez pas dit de le changer)

entrez la description de l'image ici

marinus
la source
4

Script shell: 166 163 caractères

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:

Exemple de sortie:

Logo Triforce ReBoot

homme au travail
la source
c'est plus imagemagick que shell
mniip
@mniip, à droite. Mais comme ImageMagick est avant tout une bibliothèque. S'il s'agissait d'un script PHP utilisant IMagick, l'en-tête du message dirait PHP, pas ImageMagick. Eh bien, selon ma logique. Je ne suis contre aucune amélioration de cap. Mais quoi qu'il en soit, 2 des 3 caractères raccourcis depuis la première version sont côté 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)

Cela produit l'image suivante dans une fenêtre de tracé:

entrez la description de l'image ici

Sven Hohenstein
la source
Je pense que vous pouvez enregistrer un caractère en écrivant p=polygon, puis p(c(1,3,5etc. coins du "carré".)
res
@res Merci pour l'astuce. La taille du cercle est le principal inconvénient de cette solution. Je n'ai pas réussi à trouver un code court pour résoudre ce problème.
Sven Hohenstein
@plannapus Excellente idée, merci! Cela a sauvé 11 caractères.
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 savait que le golf réduisait tellement le code.

EDIT: Merci manatwork pour toutes vos suggestions.

Quillion
la source
1
Veuillez jouer votre code au golf.
Kevin Cox
Vous avez toujours des espaces inutiles après des virgules de séparation des paramètres. Et veuillez utiliser le bloc de code au lieu du balisage de code en ligne, afin que des scripts comme Code Golf UserScript Enhancement Pack puissent le reconnaître comme du code et afficher sa taille.
manatwork
3

Langue de Game Maker, 167 165 155

EDIT 1 - J'ai rasé deux caractères en remplaçant c_greenpar 32768, la même valeur. Les valeurs de l'autre couleur étaient plus longues que leurs noms prédéfinis.

EDIT 2 - Golf épique! Variables utilisées pour les valeurs fréquemment utilisées, et oublié que les sauts de ligne ne sont pas nécessaires (les sauts de ligne comptent pour deux espaces).

La pièce ( r) est prédéfinie 64 par 32 avec un fond blanc. L'objet dest n'importe où dans la pièce r. Dessiner le code d'événement:

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)

Résultat:

Sortie de la salle r

Ti84-Basic - 54 caractères (mais la sortie est en noir et blanc)

:Line(0,0,2,0
:Line(0,0,1,1
:Line(2,0,1,1
:Circle(1,.5,.5
Timtech
la source
Pas de photos utilisées!
Timtech
La figure apparaît-elle dans sa propre fenêtre?
DavidC
@DavidCarraher Oui. J'ai utilisé la capture d'écran en jeu, donc la fenêtre ne s'affiche pas.
Timtech
Vous avez utilisé draw_set_colortrois fois. Vous ne pouvez pas enregistrer des personnages par quelque chose comme d=draw_set_character?
DavidC
@DavidCarraher J'ai déjà essayé cela; cela ne fonctionne pas :( GML devient parfois têtu.
Timtech
2

HTML, 101

<img style=position:absolute;clip:rect(30px,130px,110px,20px) src=http://i.stack.imgur.com/iE6m9.png>
Danko Durbić
la source
2
Il y a une nouvelle exigence - "Pas de vol d'images en fournissant des liens."
Timtech
Je parie que vous pourriez battre cela avec un simple: http://someshort.url(... et que cela créerait également une autre exigence)
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/

Non 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ć
la source
1
Au lieu de régler border-leftet border-rightséparément, mieux régler borderpuis réduire celui qui n'est pasborder-top:0
nécessaire
Oui, je le recommanderais aussi. Cela raccourcira votre code.
Timtech
@manatwork, même cela peut être amélioré avec border-bottom-colorau lieu de border-bottomsur le premier div et de même border-top-colorsur le deuxième div. Et en utilisant 1emau lieu de 25pxet 2emau lieu de 50pxchange la taille mais enregistre quelques caractères.
Peter Taylor
Merci, @manatwork & Pete Taylor. J'ai essayé d'utiliser em au lieu de px, mais il est difficile de centrer le cercle si sa bordure doit être large de 1px.
Danko Durbić
L'identification doit-elle vraiment être aussi longue?
Timtech
2

R, 108 caractères

Très similaire à la solution de Sven Hohenstein mais diffère sur deux points intéressants, j'ai donc pensé l'ajouter:

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)

Au lieu de dessiner un grand triangle bleu et un petit blanc, je dessine un polygone représentant déjà les trois triangles. Quant au cercle, celui-ci (dont le code est nettement plus long que celui de Sven) ne perd pas ses contacts avec les triangles lors du redimensionnement.
Enfin, au lieu d'utiliser les noms de couleur, j'ai utilisé leur numéro dans la palette de couleurs par défaut de R (4 pour le bleu et 3 pour le vert).

entrez la description de l'image ici

plannapus
la source
1

JavaScript (canvas, Firefox), 237 231 caractères

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

Je n'ai pas pu trouver d'exigences strictes sur les dimensions, j'ai donc décidé d'en abuser un peu et d'utiliser 8 × 4 pixels pour réduire la taille du code ... également, s'appuie sur l'extension Mozilla mozFillRule pour obtenir un remplissage pair la triforce.

jsbin (petit) , jsbin (plus grand)

Luciole
la source
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>

Fenêtre Firefox avec svg draw

F. Hauri
la source
Au lieu de style="fill:#00f", vous pouvez utiliser fill="#00f", je pense. Idem pour les autres styleart.
Ry-
@minitech: Je dois être capable d'économiser 5 octets de plus en décalant ce dessin en 1: ayant un plan vertical à la 2 to 9place 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 />
marteau-de-loup
la source
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))

image dans la fenêtre créée par SageC'est via l'interface de ligne de commande Sage. (Cela fonctionne également dans un cahier Sage, mais bien que l'image apparaisse dans sa propre cellule, cela ne correspond probablement pas à une "fenêtre".)

EDIT: Élimination de 5 signes moins et remplacement de la capture d'écran d'une cellule de bloc-notes Sage par l'une des fenêtres CLI de Sage. (Crédit @boothby)

res
la source
Si vous appelez .show()un objet graphique à partir de la CLI, il fera apparaître une fenêtre. Vous pouvez également enregistrer quelques caractères en déplaçant tout (+ 2, + 1).
stand
@boothby - Merci pour l'idée de se débarrasser des signes moins. À propos de la fenêtre, il s'avère que l'exécution du programme tel quel (sans .show ()) produit la fenêtre souhaitée à partir de la CLI Sage. (Ni ceci ni la version .show () ne fonctionne lorsque j'exécute Sage sous Linux dans une machine virtuelle (Win7 / VirtualBox). Fonctionne très bien lorsque je démarre Ubuntu et exécute Sage de cette façon.) Merci pour le coup de pouce pour essayer la CLI.
res
0

Golf-Basic 84, 36 caractères (la sortie est en noir et blanc)

l;0,0,2,0l;0,0,1,1l;2,0,1,1c;1,.5,.5
Timtech
la source