打高尔夫球您最喜欢的Minecraft工具


20

Minecraft中默认项目纹理都是相当简单的16×16像素图像,这使它们看起来像打高尔夫球的理想选择。

下面是简化的五个“核心”钻石的Minecraft工具纹理:鹤嘴锄,和锄头

所显示的图像被放大以显示其细节。单击图像以查看其正确尺寸的16×16像素版本。

镐 铲 斧头 剑 锄头

为了使打高尔夫球更容易,我将它们从原始文件中修改为仅使用五种相同的24位RGB颜色:

  • 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 用于木柄轮廓。

选择自己喜欢的工具在五个的和写一个程序,它的输出在任何共同无损真彩色图像格式简化的16×16像素的纹理(例如bpmpngppm等等)。

因此,例如,如果您选择了斧头,则将编写一个输出此图像的程序: 斧头例子

请勿输入任何内容,也不需要网络连接。可以将图像输出为带有您选择的名称的文件,或者可以将原始图像文件数据输出到stdout,或者您可以简单地显示图像。

你只需要选择一个五个图像。以最少的字节数输出五个图像中的任何一个的程序就是赢家。

您可以为其中一幅以上的图像编写程序,但是只有字节数最少的图像才计入分数。如果平局,则获最高票数的职位获胜。


如果您喜欢PPCG并玩Minecraft,我邀请您加入我们的Minecraft试用服务器。只需在专用聊天室中询问即可。


5
“放大以显示细节。” 我只能想到谷物盒。
Alex A.

我认为可能存在一些压缩问题,或者您的颜色有错别字。Mathematica声称,使用了这五种颜色(至少用于铲子):[[76 82 73] [26 63 54] [106 234 204] [39 30 13] [133 102 45]]
Martin Ender 2015年


@MartinBüttner您确定吗?我重新下载了铲子图像,并确保5种颜色正确。我还确保有5种颜色。imgur可能正在压缩放大的图像,但这些不是您应该使用的图像。
加尔文的爱好

@ Calvin'sHobbies允许输入吗?
Kritixi Lithos

Answers:


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头。下面的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"')


可以通过使用base64编码而不是hex来缩短它吗?
lirtosiast 2015年

6
最大的源映像是297个字节。有点难过的是在那:)
JB

@JB [kolmogorov-complexity]是有原因的;)
NinjaBearMonkey 2015年

@ThomasKwa实际上不是将base64延长吗?(实际上是以17为底数的,因为g结尾处将近。)
NinjaBearMonkey 2015年

我不知道在Javascript中解释base64编码有多昂贵,但是字符串文字本身应为base64中十六进制大小的2 / 3rds。
lirtosiast

2

由于这是我的世界的问题,我将提供一个命令块解决方案: 50个字符

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

创建一个显示轴的项目框架。


2
您需要输出图像
Deusovi

1
图像作为游戏的一部分输出到屏幕上。
卢卡斯2015年

1
由于视角的原因,它永远不会是完美的图像-它也应该是pixelart,只有16x16。
Deusovi 2015年

3
我认为这符合标准漏洞的要求-与从外部来源获取图像相同。我认为召唤方块充当像素,并且颜色尽可能接近是可以的。
加尔文的爱好

1
我将此视为语言功能。
卢卡斯2015年

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

这是输出: 在此处输入图片说明

我为每种颜色创建了一个字符串,并将它们组合在一起以得到一个十六进制数字字符串。然后,我使用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方向相对于您绘制的。颜色是错误的,但我将其视为语言限制;)

但是铲子实际上是用木头和钻石制成的!

输出量

铲起



哦,嘿,太酷了!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.