Triforce ReBoot [ปิด]


10

เมื่อเห็นว่าโลกสวัสดีนั้นได้รับผลกระทบกลับมามากแค่ไหนนี่เป็นสิ่งที่ยากกว่า

ฉันรัก Zelda และฉันรัก ReBoot

สร้างดังต่อไปนี้

ป้อนคำอธิบายรูปภาพที่นี่

ข้อกำหนด:
มันจะต้องเป็นหน้าต่าง (สามารถเป็นหน้าต่างใดก็ได้แม้กระทั่งเบราว์เซอร์และอื่น ๆ )
หน้าต่างสามารถมีขนาดใดก็ได้
หน้าต่างอาจไม่มีสิ่งใดนอกจากรูปภาพ
หน้าต่างไม่ควรปิดตัวเองทันที
สามเหลี่ยมจะต้องมีสีฟ้าใด ๆ
วงกลมจะต้องมีร่มเงาสีเขียวใด ๆ
สามเหลี่ยมที่เล็กกว่าจะต้องแตะที่ขอบของ
รูปภาพที่ไม่มีการขโมยโดยให้ลิงก์

เงื่อนไข:รหัสที่สั้นที่สุดชนะ

PS: ใช่โลโก้ ReBoot แตกต่างกันเล็กน้อย แต่มันใกล้พอที่จะทำให้มันสนุก

แก้ไข: ฉันเพิ่มข้อกำหนดอื่น ดูเหมือนว่าเรามีคนอัจฉริยะจำนวนมากที่สนุกกับการหาช่องโหว่: PI รักพวกคุณ


"สามเหลี่ยมต้องมีสีเหลืองใด ๆ " รูปภาพขัดแย้งกันไหม?
Timtech

@ Timtech ฉันขอโทษข้อความมีขีดเส้นใต้เป็นสีส้มเนื่องจากการสะกดคำผิดและฉันคิดว่าสีส้มในขณะที่ต้องการเขียนสีน้ำเงิน
Quillion

1
โอเคอย่างน้อยตอนนี้ก็คงที่แล้ว และฉันได้พยายามที่จะได้รับความคิดเห็นสั้น - กอล์ฟรหัสมากเกินไป ...
Timtech

ฉันจะได้รับคะแนนโบนัสถ้าภาพเต็มหน้าจอและยังคงเป็นฉันปรับขนาดหน้าจอ? (คุณต้องอนุญาตให้วงกลมเป็นวงรีแล้ว)
Cruncher

การอ่านข้อกำหนดอีกครั้งจริง ๆ แล้วอะไรคือสิ่งที่ห้ามไม่ให้ใครบางคนสร้างเพียงแค่การสร้างภาพเป็นสีและการทำให้โปรแกรมอ่านภาพ นี่จะเป็นเพียงสองบรรทัดในไพ ธ อน บางทีคุณควรเขียนกฎต่อที่
Cruncher

คำตอบ:


10

Mathematica 118 119 118 107 97

แก้ไข: ย่อเหลือ 107 chars ด้วยความช่วยเหลือจาก Belisarius และ 97 กับ alephalpha

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}]
alephalpha

3
ฉันได้รับความช่วยเหลือเล็กน้อยจากเพื่อน
DavidC

7

Dyalog 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


นี่เป็น
จินตนาการ

@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

@res ขอบคุณสำหรับเคล็ดลับ ขนาดของวงกลมคือข้อเสียเปรียบที่สำคัญของการแก้ปัญหานี้ ฉันไม่สามารถหารหัสสั้น ๆ เพื่อแก้ปัญหานี้ได้
Sven Hohenstein

@plannapus ความคิดที่ดีขอบคุณ! บันทึก 11 ตัวอักษร
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();
    }
}

แข็งแรงเล่นกอล์ฟ

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

ใครจะรู้ว่าการเล่นกอล์ฟช่วยลดรหัสมาก

แก้ไข: ขอบคุณ manatwork สำหรับคำแนะนำทั้งหมดของคุณ


1
กรุณารหัสกอล์ฟของคุณ
Kevin Cox

คุณยังคงมีช่องว่างที่ไม่มีประโยชน์หลังจากเครื่องหมายจุลภาคคั่นพารามิเตอร์ และโปรดใช้การบล็อกรหัสแทนมาร์กอัปโค้ดแบบอินไลน์ดังนั้นสคริปต์เช่นCode Golf UserScript Enhancement Packสามารถจดจำได้ว่าเป็นรหัสและแสดงขนาดของมัน
จัดการ

3

ภาษาของ Game Maker, 167 165 155

แก้ไข 1 - ฉันโกนอักขระสองตัวโดยแทนที่c_greenด้วย32768ค่าเดียวกัน ค่าของสีอื่นนั้นยาวกว่าชื่อที่กำหนดไว้ล่วงหน้า

แก้ไข 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 บางครั้งก็ดื้อรั้น
ทิมเท

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(... และนี่จะสร้างข้อกำหนดอื่นเช่นกัน)
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
แทนที่จะตั้งค่าborder-leftและborder-rightแยกกันให้ตั้งค่าที่ดีขึ้นborderแล้วลดสิ่งที่ไม่จำเป็นเช่นborder-top:0: jsfiddle.net/WF3hP/2
manatwork

ใช่ฉันขอแนะนำเช่นกัน มันจะทำให้รหัสของคุณสั้นลง
Timtech

@ manatwork แม้กระทั่งว่าสามารถปรับปรุงได้ด้วยborder-bottom-colorแทนที่จะborder-bottomเป็น div แรกและคล้ายกันborder-top-colorใน div ที่สอง และใช้1emแทน25pxและ2emแทนที่จะ50pxเปลี่ยนขนาด แต่บันทึกไม่กี่ตัว
ปีเตอร์เทย์เลอร์

ขอบคุณ @ manatwork & Pete Taylor ฉันลองใช้ em แทน px แต่มันยากที่จะทำให้วงกลมอยู่ตรงกลางถ้าเส้นขอบนั้นต้องกว้าง 1px
Danko Durbić

ID ต้องมีความยาวจริงหรือ
Timtech

2

R, 108 ตัวอักษร

คล้ายกับโซลูชัน Sven Hohensteinแต่แตกต่างกันในสองจุดที่น่าสนใจดังนั้นฉันคิดว่าฉันจะเพิ่ม:

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)

แทนที่จะวาดสามเหลี่ยมสีน้ำเงินใหญ่และสีขาวเล็ก ๆ ฉันวาดรูปหลายเหลี่ยมที่เป็นตัวแทนของสามเหลี่ยมสามรูปนั้น ในส่วนของวงกลมวงนี้ (ซึ่งมีรหัสยาวกว่า Sven อย่างชัดเจน) จะไม่สูญเสียการติดต่อกับสามเหลี่ยมเมื่อปรับขนาด
ในที่สุดแทนที่จะใช้ชื่อสีฉันใช้หมายเลขในจานสีเริ่มต้นของ 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 Mozilla mozFillRule เพื่อให้ได้ขนาดที่เพิ่มขึ้น triforce

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 draw


แทนที่จะstyle="fill:#00f"คุณสามารถใช้fill="#00f"ผมคิดว่า เดียวกันอื่น ๆ สำหรับstyles
Ry-

@minitech: ฉันจะต้องสามารถที่จะบันทึก 5 ไบต์มากขึ้นในการขยับวาดภาพนี้ขึ้นมา1: มีแผนในแนวดิ่งจาก2 to 9แทน3 to 10...
เอฟ HAURI


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

รูปภาพในหน้าต่างที่สร้างโดย Sageนี่คือผ่านอินเตอร์เฟสบรรทัดคำสั่ง Sage (สิ่งนี้สามารถใช้งานได้ใน Sage Notebook แต่ถึงแม้ว่าภาพจะปรากฏในเซลล์ของตัวเอง แต่ก็อาจไม่ถือว่าเป็น "หน้าต่าง")

แก้ไข: กำจัด 5 เครื่องหมายลบและแทนที่ภาพหน้าจอของเซลล์ Sage Notebook ด้วยหนึ่งในหน้าต่าง Sage CLI (เครดิต @boothby)


ถ้าคุณเรียก.show()ใช้วัตถุกราฟิกจาก CLI มันจะปรากฏขึ้นหน้าต่าง นอกจากนี้คุณยังสามารถบันทึกตัวละครไม่กี่ตัวโดยขยับทุกอย่าง (+2, + 1)
บูธโดย

@boothby - ขอบคุณสำหรับความคิดที่จะกำจัดเครื่องหมายลบ เกี่ยวกับหน้าต่างปรากฎว่าการรันโปรแกรมตามที่เป็นอยู่ (ไม่มี. show ()) จะสร้างหน้าต่างที่ต้องการจาก Sage CLI (ทั้งนี้และรุ่น. show () ไม่ทำงานเมื่อฉันเรียกใช้ Sage ภายใต้ Linux ในเครื่องเสมือน (Win7 / VirtualBox) ทำงานได้ดีเมื่อฉันบูตขึ้น Ubuntu และเรียกใช้ Sage ด้วยวิธีนี้) ขอบคุณสำหรับการทดลองใช้ CLI
res

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.