Você não odeia quando não consegue se lembrar de como criar algo no Minecraft? Bem, é hora de remediar isso!
Tarefa
Sua tarefa é pegar uma entrada, como uma lista 1D ou 2D, e produzir qual item é resultado da tabela de criação!
Entrada
Você pode receber a entrada como uma sequência de caracteres ou uma lista de comprimento 9
ou uma matriz aninhada 2D.
Se você considerar a entrada como ...
Corda
Cada item da tabela possui 1 caractere no caractere ASCII imprimível ( 0x20
para 0x7E
). Para representar um espaço vazio, use um -
exemplo WWW-W-WWW
seria o mesmo que uma tabela de criação como
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
| | Wood | |
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
Você também pode receber a entrada como uma sequência de múltiplas linhas, desde que todos os espaços sejam preservados, por exemplo
WWW
W
WWW
Matriz 1D
Você usaria a entrada como uma matriz de caracteres, onde os espaços vazios na tabela de criação seriam um caractere vazio, por exemplo, a tabela acima ['W','W','W','','W','','W','W','W']
Matriz 2D
Desta vez, cada lista representa uma linha na tabela de criação, onde um espaço vazio é um caractere vazio, por exemplo [['W','W','W'],['','W',''],['W','W','W']]
Você pode assumir que a entrada sempre corresponderá a um item que pode ser criado e, se estiver usando a entrada da matriz, poderá substituir o caractere vazio por qualquer caractere não usado como um nome abreviado.
Resultado
A saída será o item criado a partir da entrada, da forma que você desejar, desde que seja óbvio o que isso significa. (Pessoalmente, eu usaria minhas abreviações de uma letra dos itens)
Ingredientes
Para este desafio, wood
significa pranchas de madeira, não toras de madeira.
Você só precisa lidar com os itens mais comuns ao criar. Estes são os ingredientes para a elaboração, mas também podem ser produtos da elaboração. A receita de criação segue o formato xxxxxxxxx
como a entrada de sequência acima. Se um item não puder ser criado, ele ---------
será colocado.
Algumas receitas não têm forma , o que significa que, desde que todos os itens estejam lá, o item será feito. Estes são indicados como a *
. Um exemplo disso seria pumpkin pie
(não um neste desafio) que só precisa de pumpkin
, sugar
e egg
para ser feita.
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-
Produtos
Esta é uma lista de todos os produtos que você pode manipular para criar. se o item também for um ingrediente, ele não será incluído aqui, mas você ainda deve poder manipulá-lo . Cada um pode ser criado usando apenas os ingredientes acima e é designada uma letra minúscula exclusiva para identificá-lo. Armor ( +
) pode usar qualquer ingrediente em [G, I, L, D]
. É $
possível fabricar armas ( ) [W, C, I, G, D]
. Como este é um site de código-golfe , no entanto, precisamos tornar essas listas mais curtas. [G, I, L, D]
é denotado por a Q
e [W, C, I, G, D]
é denotado por 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
Pontuação
Como não seria razoável pedir-lhe para fazer todas essas receitas, você só precisa fazer as que deseja! Mas é claro que, quanto mais você faz, melhor sua pontuação.
Pontuação é definida como
score = length of program in bytes / number of working recipes squared
Por exemplo, isso pode ser um envio.
input()
print('S')
Como você pode supor que a entrada passada será uma que ela possa manipular ( ----W--W-
), ela sempre produzirá S
, o que equivale a sticks
. Isso marcaria 18/1 = 18 .
Você deve considerar a entrada como um programa válido e deve poder manipular pelo menos 5 entradas diferentes .
A pessoa com a pontuação mais baixa ganha.
Regras
- Menor pontuação ganha
- Você pode receber informações usando qualquer método aceito (parâmetros de função, STDIN etc.)
- Você só pode receber informações de uma das formas acima. Não é muito restritivo e deve ser viável
- As brechas padrão não são permitidas
- Você deve receber informações
- Você deve produzir pelo menos
5
resultados corretos para se qualificar como concorrente. - Para receitas sem forma, por exemplo, pepitas de ouro, combinações diferentes não contam como receitas diferentes.
----W----
é o mesmo (em termos de receita)--W------
e é apenas uma receita. - Por outro lado, para receitas que usam mais de um material, como blocos de materiais, cada material diferente conta como receita diferente, o que significa que
IIIIIIIII
não é o mesmo (em termos de receita) queRRRRRRRRR
.
Boa sorte, Minecrafters!
W--W-----
,-W--W----
,--W--W---
,---W--W--
,----W--W-
, ou,-----W--W
. precisamos lidar com apenas um desses ou todos?