Golf il tuo strumento Minecraft preferito


20

In Minecraft , le trame degli oggetti predefiniti sono tutte immagini 16 × 16 pixel ragionevolmente semplici, il che le rende ideali per giocare a golf .

Di seguito sono riportate le trame semplificate dei cinque utensili diamantati "core" in Minecraft: piccone , pala , ascia , spada e zappa .

Le immagini mostrate vengono ingrandite per mostrare i loro dettagli. Fai clic su un'immagine per visualizzare la versione di 16 × 16 pixel della dimensione corretta.

piccone pala ascia spada Zappa

Per rendere più semplice il golf, ho modificato ciascuno di essi dagli originali per utilizzare solo gli stessi cinque colori RGB a 24 bit:

  • R=75 G=82 B=73 per lo sfondo.
  • R=51 G=235 B=203 per le teste degli utensili diamantati.
  • R=14 G=63 B=54 per i contorni del diamante.
  • R=137 G=103 B=39 per l'anima in legno.
  • R=40 G=30 B=11 per i contorni del manico in legno.

Scegli il tuo strumento preferito dei cinque e scrivere un programma che uscite la sua semplificato 16 × 16 pixel di texture in qualsiasi formato di immagine TrueColor comune senza perdita di dati (come ad esempio bpm, png, ppm, etc.).

Quindi, per esempio, se scegli l'ascia, dovresti scrivere un programma che emetta questa immagine: esempio di ascia

Nessun input dovrebbe essere preso e una connessione web non dovrebbe essere richiesta. L'immagine può essere emessa come file con il nome di tua scelta, oppure i dati del file di immagine grezza possono essere inviati a stdout, oppure puoi semplicemente visualizzare l'immagine.

Devi solo scegliere una delle cinque immagini. Il programma che genera una delle cinque immagini nel minor numero di byte è il vincitore.

Puoi scrivere programmi per più di una delle immagini, ma solo quella con il numero minimo di byte conta per il tuo punteggio. Se c'è un pareggio, vince il post più votato.


Se ti piace PPCG e giochi a Minecraft, ti invito a unirti al nostro server di prova Minecraft. Basta chiedere nella chatroom dedicata .


5
"Ingrandito per mostrare i dettagli." Posso solo pensare alle scatole di cereali.
Alex A.

Penso che potrebbero esserci dei problemi di compressione o che tu abbia alcuni errori di battitura nei colori. Mathematica afferma che questi cinque colori sono usati (almeno per la pala):[[76 82 73] [26 63 54] [106 234 204] [39 30 13] [133 102 45]]
Martin Ender l'


@ MartinBüttner Sei sicuro? Ho scaricato nuovamente l' immagine della pala e mi sono assicurato che i 5 colori fossero corretti. Mi sono anche assicurato che ci fossero esattamente 5 colori. imgur potrebbe comprimere le immagini ingrandite ma non sono quelle che dovresti usare.
Calvin's Hobbies,

@ Calvin'sHobbies È consentito l'ingresso?
Kritixi Lithos,

Risposte:


6

CJam, 119 byte

Ho scelto la pala.

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

Provalo qui.

Questo programma stampa un file PPM su STDOUT.

Ho usato questo script per aiutare a codificare l'immagine. (Questo è principalmente per me stesso se ho bisogno di riutilizzarlo in seguito.)

L'idea di base è di srotolare l'immagine lungo gli antidiagonali e quindi utilizzare la codifica run-length. Con questa tecnica, la pala contiene il minor numero di corse. Per riferimento il numero di corse per immagine (nell'ordine indicato nella sfida) è:

{60, 26, 38, 43, 37}

Aggiungerò ulteriori spiegazioni quando avrò finito di giocare a golf.


7

JavaScript ES6, 353 byte

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

Questo abusa pesantemente delle ombre box CSS3 per creare una versione pixelizzata dell'immagine, in questo caso la zappa Minecraft. Lo snippet di stack di seguito utilizza ES5 per test facili ed è in qualche modo ungolf (dovresti ingrandire per vederlo bene).

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


Questo potrebbe essere abbreviato usando la codifica base64 anziché esadecimale?
lirtosiast,

6
L'immagine di origine più grande è 297 byte. Un po 'triste di essere oltre :)
JB l'

@JB È [kolmogorov-complessità] per un motivo;)
NinjaBearMonkey l'

@ThomasKwa Base64 non lo allunga davvero? (In realtà è base-17 perché c'è gquasi la fine.)
NinjaBearMonkey l'

Non so quanto sia costosa interpretare la codifica Base64 in Javascript, ma la stringa letterale stessa dovrebbe avere dimensioni 2/3 della base in Base64 come in esadecimale.
lirtosiast,

2

Poiché questo è un problema di Minecraft, farò una soluzione a blocchi di comandi: 50 caratteri

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

crea una cornice di oggetto che mostra un'ascia.


2
Devi produrre un'immagine .
Deusovi,

1
L'immagine viene trasmessa sullo schermo come parte del gioco.
Lucas,

1
A causa della prospettiva, non sarà mai un'immagine perfetta - dovrebbe essere anche pixelart, solo 16x16.
Deusovi,

3
Penso che questo si qualifichi come una scappatoia standard - lo stesso che ottenere l'immagine da una fonte esterna. Penso che sarebbe stato bene evocare i blocchi per agire come pixel, con i colori il più vicino possibile.
Calvin's Hobbies,

1
Lo considero una caratteristica della lingua.
Lucas,

1

Python 3, 483 byte

Ho scelto di fare la spada

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

ecco l'output: inserisci qui la descrizione dell'immagine

Ho creato una stringa per ogni colore e li ho combinati per ottenere una stringa di numeri esadecimali. Quindi ho usato la libreria di immagini Python per convertire quella stringa in un'immagine.


1

Minecraft 18w11a (.mcfunction), 757 byte

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

Naturalmente qualcuno ha dovuto rispondere alla domanda con Minecraft. Inserisci la risposta all'interno di un datapack ed esegui con /function <packname>:<filename>. La pala è disegnata in relazione a te nella direzione + X e + Z. I colori sono sbagliati ma lo considero un limite di lingua;)

Ma la pala è in realtà fatta di legno e diamanti !!!!

Produzione

spalato



oh ehi, è fantastico!
quat
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.