Golfez votre outil Minecraft préféré

20

Dans Minecraft , les textures des éléments par défaut sont toutes des images 16 × 16 pixels raisonnablement simples, ce qui les rend idéales pour le golf .

Vous trouverez ci-dessous les textures simplifiées des cinq outils diamant "de base" de Minecraft: pioche , pelle , hache , épée et houe .

Les images présentées sont agrandies pour montrer leurs détails. Cliquez sur une image pour afficher sa version 16 × 16 pixels de taille correcte.

pioche pelle hache épée houe

Pour faciliter le golf, j'ai modifié chacun d'eux à partir des originaux pour n'utiliser que les cinq mêmes couleurs RVB 24 bits:

  • R=75 G=82 B=73 pour le fond.
  • R=51 G=235 B=203 pour les têtes d'outils diamant.
  • R=14 G=63 B=54 pour les contours du diamant.
  • R=137 G=103 B=39 pour le noyau du manche en bois.
  • R=40 G=30 B=11 pour les contours du manche en bois.

Choisissez votre outil préféré de cinq et écrire un programme que les résultats de son simplifié 16 × 16 pixels texture dans un format d'image sans perte truecolor commun ( par exemple bpm, png, ppm, etc.).

Ainsi, par exemple, si vous choisissez la hache, vous écrirez un programme qui génère cette image: exemple de hache

Aucune entrée ne doit être prise et une connexion Internet ne doit pas être requise. L'image peut être sortie sous forme de fichier avec le nom de votre choix, ou les données brutes du fichier image peuvent être sorties vers stdout, ou vous pouvez simplement afficher l'image.

Il vous suffit de choisir l' une des cinq images. Le programme qui sort l'une des cinq images dans le moins d'octets est le gagnant.

Vous pouvez écrire des programmes pour plus d'une des images, mais seule celle avec le nombre minimum d'octets compte pour votre score. S'il y a égalité, le poste le plus voté gagne.


Si vous aimez PPCG et jouez à Minecraft, je vous invite à venir rejoindre notre serveur d'essai Minecraft. Il suffit de demander dans le salon de discussion dédié .

Loisirs de Calvin
la source
5
"Agrandi pour montrer les détails." Je ne peux penser qu'aux boîtes de céréales.
Alex A.
Je pense qu'il peut y avoir des problèmes de compression ou que vous avez des fautes de frappe dans les couleurs. Mathematica affirme que ces cinq couleurs sont utilisées (au moins pour la pelle):[[76 82 73] [26 63 54] [106 234 204] [39 30 13] [133 102 45]]
Martin Ender
@ MartinBüttner Êtes-vous sûr? J'ai re-téléchargé l' image de la pelle et je me suis assuré que les 5 couleurs sont correctes. J'ai également vérifié qu'il y avait exactement 5 couleurs. imgur peut compresser les images agrandies mais ce ne sont pas celles que vous devriez utiliser.
Calvin's Hobbies
@ Calvin'sHobbies La saisie est-elle autorisée?
Kritixi Lithos du

Réponses:

6

CJam, 119 octets

J'ai choisi la pelle.

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

Testez-le ici.

Ce programme imprime un fichier PPM sur STDOUT.

J'ai utilisé ce script pour aider à encoder l'image. (C'est principalement pour moi si j'ai besoin de le réutiliser plus tard.)

L'idée de base est de dérouler l'image le long des antidiagonales, puis d'utiliser le codage de longueur. Avec cette technique, la pelle contient le moins de pistes. Pour référence, le nombre d'exécutions par image (dans l'ordre donné dans le défi) est:

{60, 26, 38, 43, 37}

J'ajouterai plus d'explications quand j'aurai fini de jouer au golf.

Martin Ender
la source
7

JavaScript ES6, 353 octets

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

Cela abuse fortement des ombres de boîte CSS3 pour créer une version pixelisée de l'image, dans ce cas la houe Minecraft. L'extrait de pile ci-dessous utilise ES5 pour des tests faciles et n'est pas du tout golfé (vous devrez zoomer pour bien le voir).

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

NinjaBearMonkey
la source
Cela pourrait-il être raccourci en utilisant l'encodage base64 au lieu de hex?
lirtosiast
6
La plus grande image source est de 297 octets. Un peu triste d'en finir :)
JB
@JB C'est [kolmogorov-complexité] pour une raison;)
NinjaBearMonkey
@ThomasKwa La base64 ne la rallonge-t-elle pas réellement? (Il s'agit en fait de base 17 car il y a gprès de la fin.)
NinjaBearMonkey
Je ne sais pas à quel point le codage d'interprétation base64 coûte cher en Javascript, mais le littéral de chaîne lui-même devrait être de 2/3 de la taille en base64 comme en hexadécimal.
lirtosiast
2

Comme il s'agit d'un problème minecraft, je vais faire une solution de bloc de commande: 50 caractères

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

crée un cadre d'élément montrant une hache.

Lucas
la source
2
Vous devez sortir une image .
Deusovi
1
L'image est sortie à l'écran dans le cadre du jeu.
Lucas
1
En raison de la perspective, ce ne sera jamais une image parfaite - il est censé être pixelart aussi, seulement 16x16.
Deusovi
3
Je pense que cela peut être considéré comme une faille standard - identique à l'obtention de l'image à partir d'une source externe. Je pense qu'il aurait été bien d'invoquer des blocs pour agir comme pixels, avec des couleurs aussi proches que possible.
Calvin's Hobbies
1
Je compte cela comme une fonctionnalité linguistique.
Lucas
1

Python 3, 483 octets

J'ai choisi de faire l'épée

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

voici la sortie: entrez la description de l'image ici

J'ai créé une chaîne pour chaque couleur et les ai combinées pour obtenir une chaîne de nombres hexadécimaux. Ensuite, j'ai utilisé la bibliothèque d'images python pour convertir cette chaîne en image.

Anthony Roitman
la source
1

Minecraft 18w11a (.mcfunction), 757 octets

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

Bien sûr, quelqu'un devait répondre à la question avec Minecraft. Placez la réponse à l'intérieur d'un pack de données et exécutez avec /function <packname>:<filename>. La pelle est dessinée par rapport à vous dans le sens + X et + Z. Les couleurs sont fausses mais je vais considérer cela comme une limitation de langue;)

Mais la pelle est en fait en bois et en diamants !!!!

Production

Pelleté

quat
la source