Перезавантаження Triforce [закрито]


10

Бачити, як привіт світ жахливо відбив, тут важче.

Я люблю Зельду і люблю ReBoot.

Створіть наступне

введіть тут опис зображення

Вимоги:
це повинно бути вікно (може бути ВСЕ вікно, навіть браузери і таке).
Вікно може бути будь-якого розміру.
Вікно може не містити нічого іншого, крім зображення.
Вікно не повинно відразу закриватися.
Трикутники повинні бути будь-якого відтінку синього.
Коло повинно бути будь-якого відтінку зеленого.
Менший трикутник повинен торкатися країв
зображень Не красти, надаючи посилання.

Умова: виграє найкоротший код.

PS: Так, логотип Reboot трохи відрізняється, але це досить близько, щоб зробити його веселим.

EDIT: Я додав ще одну вимогу. Здається, у нас дуже багато геніальних людей, які люблять знаходити лазівки: PI люблю вас, хлопці.


"Трикутники повинні бути будь-якого відтінку жовтого". Зображення конфліктів?
Timtech

@Timtech Вибачте, текст був підкреслений як помаранчевий через неправильне написання, і я подумав, що помаранчевий бажаючи написати синій.
Кільйон

1
Гаразд, принаймні це зараз виправлено. І я навіть намагаюся отримати коротші коментарі - занадто багато гольфу на коді ...
Timtech

Чи отримую я бонусні бали, якщо зображення заповнює екран і продовжує змінювати розмір екрана? (Ви повинні дозволити коло тоді бути овальним)
Cruncher

Насправді знову читаючи вимоги, що зупиняє когось просто створити зображення в фарбі та змусити програму прочитати зображення? Це було б лише пару рядків у python. Можливо, вам слід написати правило проти цього
Cruncher

Відповіді:


10

Математика 118 119 118 107 97

Редагувати: Скорочено до 107 символів за допомогою Велізарія і до 97 з алефальфи.

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

трикутник


Мені було страшно, що ти побив мене: 3 Але це коло має бути зеленим!
Timtech

Зараз зелений. Дякуємо, що зауважили.
DavidC

1
У 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}]
Доктор Белісарій

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

3
Я отримав невелику допомогу від своїх друзів.
DavidC

7

Діялог APL ( 121 116 115)

(Редагувати: використовуйте трикутники шириною 8 елементів замість 10, щоб трохи скоротити код)

(Редагувати 2: Я використовував лише коли-небудь , тому включив ¨у визначення 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

Графіка? Кому потрібна графіка?

(Крім того, чорний фон є типовим фоном, ви не казали його змінювати)

введіть тут опис зображення


4

Сценарій оболонки: 166 163 символів

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:

Вибірка зразка:

Логотип Triforce ReBoot


це більше
Imagemagick,

@mniip, справа. Але оскільки ImageMagick - це насамперед бібліотека. Якщо це був PHP-скрипт із використанням IMagick, заголовок публікації сказав би PHP, а не ImageMagick. Ну, за моєю логікою. Я не проти вдосконалення рубрики. Але все одно, 2 з 3 символів, що скорочуються з часу першої версії, знаходяться на оболонці. :)
манатура

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)

Це створює наступне зображення у вікні сюжету:

введіть тут опис зображення


Я думаю, що ви можете зберегти один символ, записавши p=polygon, а потім p(c(1,3,5і т. Д. (BTW, у моїй системі розмір кола масштабується інакше, ніж трикутники, коли розмір вікна змінюється, і мені доведеться трохи пограти з ним, щоб коло перехрестилося кути «квадрат»).
рес

@res Дякую за пораду. Розмір кола - головний недолік цього рішення. Я не зміг розібратися з коротким кодом, щоб вирішити цю проблему.
Свен Хогенштайн

@plannapus Чудова ідея, дякую! Це зберегло 11 символів.
Свен Хогенштайн

3

Ява, 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();
    }
}

гольф

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

Хто знав, що гольф настільки зменшує код.

РЕДАКТУЙТЕ: Дякую манекенству за всі ваші пропозиції.


1
Будь ласка, гольф код.
Кевін Кокс

Після коми роздільника параметрів залишаються марні пробіли. І будь ласка, використовуйте код коду замість вбудованої розмітки коду, щоб такі сценарії, як Code Golf UserScript Enhancement Pack, могли розпізнати його як код та відображати його розмір.
манатура

3

Мова виробника ігор, 167 165 155

EDIT 1 - Я обрізав два символи, замінивши c_greenна 32768те саме значення. Значення інших кольорів були довші за їх попередньо визначені назви.

EDIT 2 - Епічний гольф! Використовував змінні для часто використовуваних значень і забув, що нові рядки не потрібні (нові рядки вважаються двома пробілами).

Кімната ( r) попередньо визначена 64 на 32 з білим тлом. Об'єкт dє де завгодно в кімнаті r. Намалюйте код події:

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

Ti84-Basic - 54 символи (але вихід чорно-білий)

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

Не використовуються фотографії!
Timtech

Чи відображається фігура у власному вікні?
DavidC

@DavidCarraher Так. Я використовував в ігровому екрані захоплення, тому вікно не відображається.
Timtech

Ви використовували draw_set_colorтри рази. Ви не можете зберегти персонажів чимось на кшталт d=draw_set_character?
DavidC

@DavidCarraher Я вже пробував це; це не працює :( GML іноді стає впертим.
Timtech

2

HTML, 101

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

2
Є нова вимога - "Не крадіть зображення, надаючи посилання".
Timtech

Надіюсь, ви можете це перемогти простим: http://someshort.url(... і що це також створить ще одну вимогу)
Олів'є Дулак

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/

Безголівки:

<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
Замість встановлення border-leftта border-rightокремо, краще встановити, borderа потім зменшити непотрібне, як-от border-top:0: jsfiddle.net/WF3hP/2
manatwork

Так, я б і рекомендував це. Це зробить ваш код коротшим.
Timtech

@manatwork, навіть те, що можна вдосконалити border-bottom-colorзамість border-bottomпершого дива і аналогічно border-top-colorдругого діла. І використання 1emзамість 25pxі 2emзамість 50pxзміни розміру, але економить кілька символів.
Пітер Тейлор

Дякуємо, @manatwork & Pete Taylor Я намагався використовувати em замість px, але важко отримати коло в центрі, якщо його межа повинна бути шириною 1px.
Данько Дурбич

Чи дійсно ідентифікатор повинен бути таким довгим?
Timtech

2

R, 108 символів

Дуже схожий на рішення Свена Гогенштейна, але відрізняється двома цікавими моментами, тому я думав, що додам його:

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)

Замість того, щоб намалювати великий синій трикутник і маленький білий, я намалюю багатокутник, який представляє вже три трикутники. Що стосується кола, то цей (чий код явно довший, ніж у Свена) не втрачає контактів із трикутниками за розміром.
Нарешті, замість того, щоб використовувати імена кольорів, я використав їх кількість у палітрі кольорів за замовчуванням R (4 для синього та 3 для зеленого).

введіть тут опис зображення


1

JavaScript (полотно, Firefox), 237 231 символів

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

Я не зміг знайти жодних жорстких вимог щодо розмірів, тому я вирішив це трохи зловживати і піти з 8 × 4 пікселями, щоб зменшити розмір коду ... Крім того, покладається на розширення Mozilla mozFillRule, щоб отримати рівномірне заповнення для трифорс.

jsbin (маленький) , jsbin (більший)


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 вікно з SVG малювати


Замість цього style="fill:#00f"можна використовувати fill="#00f", я думаю. Те саме для інших styles.
Ри-

@minitech: Я повинен бути в змозі зберегти ще 5 байт під час змінення цього креслення 1: маючи вертикальний план 2 to 9замість 3 to 10...
Ф. Хаурі

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

Шавлія (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))

зображення у вікні, створеному SageЦе відбувається через інтерфейс командного рядка Sage. (Це також працює в Sage Notebook, але хоча зображення з’являється у власній комірці, це, ймовірно, не кваліфікується як "вікно".)

EDIT: Усунув 5 мінусових знаків і замінив знімок екрана комірки Sage Notebook одним із вікон Sage CLI. (Кредит @boothby)


Якщо ви зателефонуєте .show()за графічним об’єктом із CLI, він з’явиться вікно. Також ви можете зберегти кілька символів, перемістивши все (+ 2, + 1).
виставка

@boothby - Дякую за ідею позбутися від знаків мінус. Щодо вікна виявляється, що запуск програми як є (без .show ()) виробляє потрібне вікно від Sage CLI. (Ні ця, ні версія .show () не працює, коли я запускаю Sage під Linux у віртуальній машині (Win7 / VirtualBox). Відмінно працює, коли я завантажую Ubuntu та запускаю Sage таким чином.) Дякую за натиск, щоб спробувати CLI.
res

0

Golf-Basic 84, 36 символів (вихід чорно-білий)

l;0,0,2,0l;0,0,1,1l;2,0,1,1c;1,.5,.5
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.