お気に入りのMinecraftツールをゴルフ


20

マインクラフトデフォルト項目のテクスチャは、すべての彼らはのための理想的な思われてしまう合理的にシンプルな16×16ピクセルの画像であるゴルフ

:以下はMinecraftの中に5「コア」ダイヤモンド工具のテクスチャに簡略化されているつるはしシャベル、と鍬を

表示される画像は、詳細を示すために拡大されています。画像をクリックして、正しいサイズの16×16ピクセルバージョンを表示します。

つるはし シャベル 斧 剣 鍬

ゴルフを簡単にするために、オリジナルからそれぞれを変更して、同じ24ビットRGBの5色のみを使用するようにしました。

  • R=75 G=82 B=73 背景に。
  • R=51 G=235 B=203 ダイヤモンドツールヘッド用。
  • R=14 G=63 B=54 ダイヤモンドの輪郭のため。
  • R=137 G=103 B=39 木製ハンドルコア用。
  • R=40 G=30 B=11 木製ハンドルのアウトライン用。

5のうち、お好きなツールを選択し、(のような任意の一般的なロスレストゥルーカラー画像形式でその簡略化さ16×16ピクセルのテクスチャを出力するプログラム書き込みbpmpngppmなど、)。

したがって、たとえば、aを選択した場合、このイメージを出力するプログラムを作成します。 xの例

何も入力しないでください。また、Web接続は必要ありません。画像は、選択した名前のファイルとして出力するか、生の画像ファイルデータをstdoutに出力するか、単に画像を表示することができます。

5つの画像のいずれを選択するだけです。5つの画像のいずれかを最も少ないバイト数で出力するプログラムが勝者です。

複数の画像のプログラムを作成できますが、最小バイト数の画像のみがスコアにカウントされます。同点の場合、最も投票数の多い投稿が勝者となります。


PPCGを楽しんでMinecraftをプレイする場合は、試用版のMinecraftサーバーに参加してください。ただ、中に尋ねる専用のチャットルーム


5
「拡大して詳細を表示します。」シリアルボックスしか考えられません。
アレックスA.

圧縮に問題があるか、色に誤植があると思います。Mathematicaは、これらの5色が使用されていると主張しています(少なくともシャベルには):[[76 82 73] [26 63 54] [106 234 204] [39 30 13] [133 102 45]]
Martin Ender


@MartinBüttnerよろしいですか?シャベルの画像を再ダウンロードし、5色が正しいことを確認しました。また、正確に5色があることを確認しました。imgurは拡大された画像を圧縮しているかもしれませんが、それらはあなたが使うべきものではありません。
カルビンの趣味

@ Calvin'sHobbies入力は許可されていますか?
Kritixi Lithos

回答:


6

CJam、119バイト

シャベルを選びました。

'P3NGSGN255N]o67T"vîþáy$<OW¥ÓNZ"256b9b~99T]2/e~W%"LRI?6jêÌ'
f-":i3/f=F,_W%:)+{)/(\:~}%{G/({)S*S+oNo}%1>\:~+}G*

ここでテストしてください。

このプログラムは、PPMファイルをSTDOUTに出力します。

このスクリプトを使用し、画像のエンコードを支援しました。(これを後で再利用する必要がある場合は、ほとんど自分用です。)

基本的な考え方は、対角線に沿って画像を展開し、ランレングスエンコーディングを使用することです。この手法では、シャベルに含まれる実行回数が最も少なくなります。参考までに、イメージごとの実行数(チャレンジで指定された順序)は次のとおりです。

{60, 26, 38, 43, 37}

これをゴルフし終わったら、さらに説明を加えます。


7

JavaScript ES6、353バイト

document.write(`<p style="width:1px;height:1px;box-shadow:${'931a31b31841940a40b40c41951a51b50c50d51e53f52b61c60d60e62f63c73d70e70f71b83c82d83e81a93b92c939a3aa2ba38b39b2ab37c38c29c36d37d28d35e36e27e34f35f26f34g35g3'.replace(/.../g,e=>(p=parseInt)(e[0],17)+`px ${p(e[1],17)}px 0 #${['33EBCB','0E3F36','896727','281E0B'][e[2]]},`)}9px 9px 0 8px #4B5249"`)

これはCSS3 ボックスシャドウを酷使して、ピクセル化されたバージョンの画像(この場合はMinecraftのhoe)を作成します。以下のStack Snippetは、簡単なテストのためにES5を使用しており、多少の変更はありません(よく見るにはズームインする必要があります)。

s='931a31b31841940a40b40c41951a51b50c50d51e53f52b61c60d60e62f63c73d70e70f71b83c82d83e81a93b92c939a3aa2ba38b39b2ab37c38c29c36d37d28d35e36e27e34f35f26f34g35g3'.replace(/.../g,function(e){
  return parseInt(e[0],17)+'px '+parseInt(e[1],17)+'px 0 #'+['33EBCB','0E3F36','896727','281E0B'][e[2]]+','
})
document.write('<p style="width:1px;height:1px;box-shadow:'+s+'9px 9px 0 8px #4B5249"')


16進数の代わりにbase64エンコードを使用することでこれを短縮できますか?
リスト管理者

6
最大のソースイメージは297バイトです。ちょっと残念です:)
JB

@JB理由は[kolmogorov-complexity];)
NinjaBearMonkey

@ThomasKwa base64は実際には長くなりませんか?(実際には17 g
番台

base64エンコーディングの解釈がJavascriptでどれほど費用がかかるかはわかりませんが、文字列リテラル自体はbase64の16進数の2/3のサイズでなければなりません。
リルトシアスト

2

これはMinecraftの問題なので、コマンドブロックソリューションを実行します: 50文字

summon ItemFrame ~1 ~0 ~0 {Item:{id:diamond_axe}}

xを示すアイテムフレームを作成します。


2
画像を出力する必要があります。
デウソビ

1
画像はゲームの一部として画面に出力されます。
ルーカス

1
遠近法のため、完璧な画像になることは決してありません-それもピクセルアートであるはずで、16x16だけです。
-Deusovi

3
外部ソースから画像を取得するのと同じように、これは標準の抜け穴と見なされると思います。ブロックを呼び出してピクセルとして機能させ、色をできるだけ近づけても大丈夫だったと思います。
カルバンの趣味

1
これを言語機能と見なします。
ルーカス

1

Python 3、483バイト

私は剣を作ることにしました

from PIL import Image as IG, ImageColor as IC
s=IG.new('RGB',(16,16))
w='#6b6727'
b='#4b5249'
d='#33ebcb'
a='#0e3f36'
n='#281e0b'
t=b*13+a*3+b*12+a+d*2+a+b*11+a+d*3+a+b*10+a+d*3+a+b+b*9+a+d*3+a+b*2+b*8+a+d*3+a+b*3+b*2+a*2+b*3+a+d*3+a+b*4+b*2+a+d+a+b+a+d*3+a+b*5+b*3+a+d+a+d*3+a+b*6+b*3+a+d+a+d*2+a+b*7+b*4+a+d+a*2+b*8+b*3+n+w+a+d*2+a+b*7+b*2+n+w+n+b+a*2+d+a+b*6+a*2+w+n+b*4+a*2+b*6+a+d+a+b*13+a*3+b*13
s.putdata([IC.getrgb(t[i:i+7]) for i in range(0,len(t),7)])
s.save('s.png','PNG')

出力は次のとおりです。 ここに画像の説明を入力してください

各色の文字列を作成し、それらを組み合わせて16進数の文字列を取得しました。次に、Python文字列ライブラリを使用して、その文字列を画像に変換しました。


1

Minecraft 18w11a(.mcfunction)、757バイト

fill ~ ~ ~ ~15 ~ ~15 ice
fill ~13 ~ ~13 ~7 ~ ~11 cyan_wool
fill ~12 ~ ~14 ~10 ~ ~8 cyan_wool
fill ~12 ~ ~13 ~10 ~ ~11 diamond_block
fill ~11 ~ ~12 ~9 ~ ~10 diamond_block
fill ~10 ~ ~11 ~8 ~ ~9 diamond_block
fill ~3 ~ ~4 ~1 ~ ~2 dirt
setblock ~3 ~ ~4 oak_planks
setblock ~2 ~ ~3 oak_planks
clone ~3 ~ ~4 ~1 ~ ~2 ~4 ~ ~5
setblock ~4 ~ ~5 oak_planks
setblock ~4 ~ ~7 ice
setblock ~6 ~ ~5 ice
clone ~6 ~ ~5 ~4 ~ ~7 ~7 ~ ~8
setblock ~9 ~ ~10 diamond_block
setblock ~4 ~ ~4 dirt
setblock ~3 ~ ~5 dirt
setblock ~7 ~ ~7 dirt
setblock ~6 ~ ~8 dirt
setblock ~1 ~ ~2 ice
fill ~12 ~ ~9 ~12 ~ ~8 ice
setblock ~11 ~ ~8 ice
fill ~8 ~ ~13 ~7 ~ ~13 ice
setblock ~7 ~ ~12 ice
fill ~ ~ ~ ~15 ~ ~15 light_gray_concrete replace ice
fill ~ ~ ~ ~9 ~ ~10 dark_oak_bark replace dirt

もちろん、誰かがMinecraftで質問に答えなければなりませんでした。データパック内に回答を配置し、で実行し/function <packname>:<filename>ます。シャベルは、+ Xおよび+ Z方向に自分に対して描かれます。色は間違っていますが、私はそれを言語の制限として数えます;)

しかし、シャベルは実際には木材とダイヤモンドで作られています!!!!

出力

シャベル



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