Non lo odi quando non ricordi come creare qualcosa in Minecraft? Bene, è tempo di rimediare!
Compito
Il tuo compito è quello di prendere un input, come un elenco 1D o 2D e produrre quale oggetto è il risultato della tabella di creazione!
Ingresso
È possibile accettare input come una stringa o un elenco di lunghezza 9
o un array nidificato 2D.
Se prendi input come ...
Corda
Ogni elemento nella tabella è 1 carattere nel carattere ASCII stampabile ( 0x20
a 0x7E
). Per rappresentare uno spazio vuoto, utilizzare -
ad esempio WWW-W-WWW
sarebbe lo stesso di una tabella di fabbricazione come
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
| | Wood | |
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
Puoi anche prendere l'input come una stringa multilinea purché tutti gli spazi siano conservati, ad es
WWW
W
WWW
1D array
Si prenderebbe l'input come un array di caratteri in cui gli spazi vuoti sulla tabella di creazione sarebbero un carattere vuoto, ad esempio la tabella sopra ['W','W','W','','W','','W','W','W']
Matrice 2D
Questa volta, ogni elenco rappresenta una linea sul tavolo di creazione, in cui uno spazio vuoto è un carattere vuoto, ad es [['W','W','W'],['','W',''],['W','W','W']]
Si può presumere che l'input corrisponderà sempre a un oggetto che può essere creato e, se si utilizza l'input di array, è possibile sostituire il carattere vuoto con qualsiasi carattere non utilizzato come nome abbreviato.
Produzione
L'output sarà l'oggetto creato dall'input, in qualsiasi forma tu voglia, purché sia ovvio cosa significhi. (Personalmente, userei le mie abbreviazioni da 1 lettera degli articoli)
ingredienti
Per questa sfida, wood
significa assi di legno, non tronchi di legno.
Devi solo maneggiare gli oggetti più comuni durante il crafting. Questi sono gli ingredienti per il crafting ma possono anche essere prodotti del crafting. La ricetta di fabbricazione segue il formato xxxxxxxxx
come l'input di stringa sopra. Se un oggetto non può essere fabbricato, ---------
viene invece inserito.
Alcune ricette sono informe , il che significa che fino a quando tutti gli oggetti saranno presenti, l'oggetto verrà prodotto. Questi sono indicati come a *
. Un esempio di questo sarebbe pumpkin pie
(non uno in questa sfida) che solo ha bisogno pumpkin
, sugar
e egg
da fare.
item name | abb. name | crafting recipe
----------------+-----------+------------------
wood | W | ---------
cobblestone | C | ---------
sticks | S | ----W--W-
iron | I | ---------
gold | G | ---------
diamond | D | ---------
redstone | R | ---------
string | N | ---------
coal | Y | ---------
sugar cane | U | ---------
redstone torch | E | -R--S----
paper | P | ---------
book | B | ---PL-PP-
wool | M | ---NN-NN-
obsidian | O | ---------
gunpowder | X | ---------
sand | A | ---------
glass | H | ---------
feather | F | ---------
flint | K | ---------
torch | T | ---------
leather | L | ---------
material blocks | Z | QQQQQQQQQ (here Q represents any in `[G, I, R, D, Y]`
compass | V | -I-IRI-I-
Prodotti
Questo è un elenco di tutti i prodotti che potresti gestire per il crafting. se l'articolo è anche un ingrediente, non sarà incluso qui ma devi comunque essere in grado di gestirlo . Ognuno può essere realizzato utilizzando solo gli ingredienti sopra ed è designato con una lettera minuscola unica per identificarlo. Armor ( +
) può usare qualsiasi ingrediente in [G, I, L, D]
. Le armi ( $
) possono essere fatte da [W, C, I, G, D]
. Dato che si tratta di un sito di code-golf , tuttavia, è necessario abbreviare queste liste. [G, I, L, D]
è indicato da a Q
ed [W, C, I, G, D]
è indicato da a J
.
item name | abb. name | crafting recipe
----------------+-----------+------------------
crafting table | a | -----WWWW
boots + | b | ---Q-QQ-Q
pants + | c | QQQQ-QQ-Q
chestplate + | d | Q-QQQQQQQ
helmet + | e | QQQQ-Q---
bed | f | ---MMMWWW
chest | g | WWWW-WWWW
wood door | h | WW-WW-WW-
iron door | i | II-II-II-
furnace | j | CCCC-CCCC
trap door | k | ---WW-WW-
TNT | l | XAXAXAXAX
anvil | m | ZZZ-I-III
axe $ | n | -JJ-SJ-S-
sword $ | o | -J--J--S-
pickaxe $ | p | JJJ-S--S-
hoe $ | q | JJ--S--S-
shovel $ | r | -J--S--S-
arrow | s | -K--S--F-
bow | t | SN-S-NSN-
bowl | u | ---W-W-W-
gold nugget * | v | ----G----
bucket | w | ---I-I-I-
clock | y | -G-GRG-G-
map | z | PPPPVPPPP
fishing rod | 1 | --S-SNS-N
flint and steel | 2 | ----I---K
shears | 3 | ---I---I-
wood button * | 4 | ----W----
dropper | 5 | CCCC-CCRC
stone button * | 6 | ----C----
jukebox | 7 | WWWWDWWWW
lever | 8 | ----S--C-
noteblock | 9 | WWWWRWWWW
piston | 0 | WWWCICCRC
pressure plate | ! | ------WW- (W can also be replaced with C/I/G)
repeater | @ | ---ERECCC
tripwire hook | # | -I--S--W-
activator rail | ( | ISIIEIISI
boat | % | ---W-WWWW
minecart | ^ | ---I-IIII
powered rail | & | G-GGSGGRG
rail | ) | I-IISII-I
stone wall | { | ---CCCCCC
fence gate | } | ---SWSSWS
fence panel | [ | ---SSSSSS
glass pane | ] | ---HHHHHH
iron bars | ; | ---IIIIII
item frame | : | SSSSLSSSS
ladder | ' | S-SSSSS-S
sandstone | " | -----AAAA
slabs | | | ---CCC---
stairs | < | W--WW-WWW
bookshelves | > | WWWBBBWWW
carpet | . | -------MM
painting | , | SSSSMSSSS
sign | ? | WWWWWW-S-
cauldron | / | I-II-IIII
enchant. table | ` | -B-DODOOO
glass bottle | ~ | ---H-H-H-
rocket * | _ | -----PXXX
punteggio
Poiché sarebbe irragionevole chiederti di fare tutte queste ricette, devi fare solo quelle che vuoi! Ma ovviamente, più fai, migliore è il tuo punteggio.
Il punteggio è definito come
score = length of program in bytes / number of working recipes squared
Ad esempio, questa potrebbe essere una presentazione.
input()
print('S')
Come puoi supporre che l'input passato sarà uno che può gestire ( ----W--W-
), verrà sempre emesso S
, che è equivalente a sticks
. Ciò significherebbe 18/1 = 18 .
È necessario accettare input per essere un programma valido ed essere in grado di gestire almeno 5 input diversi .
Vince la persona con il punteggio più basso.
Regole
- Il punteggio più basso vince
- È possibile accettare input utilizzando qualsiasi metodo accettato (parametri di funzione, STDIN ecc.)
- Puoi prendere input solo in uno dei moduli sopra. Non è troppo restrittivo e dovrebbe essere praticabile
- Le scappatoie standard non sono ammesse
- Devi prendere input
- Devi ottenere almeno i
5
risultati corretti per qualificarti come concorrente. - Per ricette senza forma, ad esempio pepite d'oro, combinazioni diverse non contano come ricette diverse.
----W----
è lo stesso (dal punto di vista della ricetta) di--W------
ed è solo 1 ricetta. - Il rovescio della medaglia di questo, per le ricette che usano più di un materiale, come blocchi di materiale, ogni materiale diverso conta come una ricetta diversa, il che significa che
IIIIIIIII
non è lo stesso (dal punto di vista della ricetta) diRRRRRRRRR
.
Buona fortuna, Minecrafters!
W--W-----
,-W--W----
,--W--W---
,---W--W--
,----W--W-
, o,-----W--W
. dobbiamo gestire solo uno di questi o tutti questi?