Triforce ReBoot [終了]


10

Hello Worldがひどく逆効果をもたらしたのを見ると、これは難しい問題です。

ゼルダとReBootが大好きです。

以下を作成します

ここに画像の説明を入力してください

要件:
ウィンドウである必要があります(ブラウザーなど、任意のウィンドウにすることができます)。
ウィンドウのサイズは任意です。
ウィンドウには、画像以外のものを含めることはできません。
ウィンドウはすぐに閉じないでください。
三角形は青の色合いでなければなりません。
円は緑の色合いでなければなりません。
小さい三角形は、
リンクを提供することにより、「盗むことのない」画像の端に接触する必要があります。

条件:最短のコードが優先されます。

PS:はいReBootのロゴは少し異なりますが、これはそれを楽しくするのに十分近いです。

編集:別の要件を追加しました。抜け穴を見つけることを楽しむ非常に天才的な人々がた​​くさんいるようです:PIはあなたたちを愛しています。


「三角形は黄色の色合いでなければなりません。」画像の矛盾?
— Timtech 2013年

@Timtech申し訳ありませんが、スペルミスのためにテキストにオレンジ色の下線が引かれ、青色を書きたいときにオレンジ色だと思いました。
— クオリオン2013年

1
少なくとも、現在は修正されています。そして、私は短いコメントを取得しようとしています-コードゴルフが多すぎます...
— Timtech '29

画像が画面いっぱいに表示され、画面のサイズを変更しても引き続きボーナスポイントを獲得できますか?(その場合、円を楕円形にする必要があります)
— ランチャー2013年

実際に要件をもう一度読んで、誰かがペイントで画像を作成し、プログラムに画像を読み取らせるのを妨げているのは何ですか?これは、Pythonで数行になるだけです。おそらく、それに対するルールを書く必要があります
— Cruncher 2013年

回答:


10

Mathematicaの118 119 118 107 97

編集:Belisariusの助けを借りて107文字に、alephalphaを使って97文字に短縮しました。

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

三角形


あなたが私を倒したのが怖かった:3しかし、その円は緑でなければならない!
— Timtech 2013年

今は緑です。注意していただきありがとうございます。
— DavidC 2013年

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}]
— belisarius博士、2013年

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

3
友達から少し助けてもらった。
— DavidC 2013年

7

Dyalog APL(121 116 115)

(編集:コードを少し短くするために、10要素ではなく8要素幅の三角形を使用してください)

(編集2:私はこれまで使用M¨していたので¨、の定義に含めました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 2013

@mniip、そうです。ただし、ImageMagickは主にライブラリです。これがIMagickを使用したPHPスクリプトである場合、投稿の見出しはImageMagickではなくPHPと表示されます。まあ、私の論理によると。見出しの改善には反対しません。しかしとにかく、最初のバージョンからの3文字短縮のうち2つはシェル側にあります。:)
— manatwork 2013

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で1つの文字を保存できると思いますp(c(1,3,5(ところで、私のシステムでは、ウィンドウのサイズが変更されたときに、円のサイズが三角形とは異なるスケールで表示されます。円を交差させるために少し操作する必要があります。 「正方形」のコーナー。)
— 解像度

@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などのスクリプトがコードとして認識し、そのサイズを表示します。
— manatwork 2013年

3

ゲームメーカーの言語、167 165 155

編集1-2つの文字を同じ値のに置き換えc_greenて削りました32768。他の色の値は、事前定義された名前よりも長くなっています。

編集2-壮大なゴルフ!頻繁に使用される値の変数を使用し、改行が不要であることを忘れていました(改行は2つのスペースとしてカウントされます)。

部屋(r)は、背景が白で64 x 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 2013年

図は独自のウィンドウに表示されますか?
— DavidC 2013年

@DavidCarraherはい。ゲーム内の画面キャプチャを使用したため、ウィンドウが表示されません。
— Timtech 2013年

draw_set_color3回使用しました。次のような方法でキャラクターを保存できませんd=draw_set_characterか?
— DavidC 2013年

@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 2013年

私はあなたが単純でそれを打つことができたに違いない: http://someshort.url(...そしてこれはまた別の要件を作成するであろう)
— Olivier Dulac '29

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して不要なものを減らします:jsfiddle.net/WF3hP/2border-rightborderborder-top:0
— manatwork

はい、私もそれをお勧めします。コードが短くなります。
— Timtech 2013年

@manatwork、それでも最初のdiv border-bottom-colorではなく、2番目のdivでborder-bottom同様border-top-colorに改善できます。そして、使用して1emの代わり25pxと2em代わりにして50pxサイズを変更しますが、いくつかの文字が保存されます。
— Peter Taylor

ありがとう、@ manatwork&ピート・テイラー。pxの代わりにemを使用してみましたが、境界の幅を1pxにする必要がある場合、円を中央に配置するのは困難です。
— ダンコDurbić

IDは本当に長い必要がありますか?
— Timtech、2013

2

R、108文字

Sven Hohensteinソリューションに非常に似ていますが、2つの興味深い点が異なるため、追加すると思いました。

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)

大きな青い三角形と小さな白い三角形の代わりに、すでに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拡張機能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>

SVGドロー付きのFirefoxウィンドウ


の代わりにstyle="fill:#00f"、あなたは使うことができるfill="#00f"と思います。他styleのsも同じです。
— Ry- 2013年

@minitech:この図面を上にシフトすることで、さらに5バイトを節約できなければなりません:...の代わりに1からの垂直プランを持っている...2 to 93 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

セージ(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 Notebookでも機能しますが、画像は独自のセルに表示されますが、おそらく「ウィンドウ」とは見なされません。)

編集:5つのマイナス記号を削除し、Sage NotebookセルのスクリーンショットをSage CLIウィンドウの1つに置き換えました。(クレジット@boothby)


.show()CLIからグラフィックスオブジェクトを呼び出すと、ウィンドウがポップアップします。また、すべてをシフトすることでいくつかの文字を保存できます(+ 2、+ 1)。
— ブース

@boothby-マイナス記号を取り除くアイデアをありがとう。ウィンドウについては、プログラムをそのまま(.show()なしで)実行すると、Sage CLIから目的のウィンドウが生成されることがわかります。(仮想マシン(Win7 / VirtualBox)のLinuxでSageを実行すると、このバージョンも.show()バージョンも機能しません。Ubuntuを起動してSageをそのように実行すると、正常に機能します。CLIを試していただきありがとうございます。
— 解像度

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.