¿No odias cuando no puedes recordar cómo crear algo en Minecraft? Bueno, ¡es hora de remediar eso!
Tarea
¡Su tarea es tomar una entrada, ya sea como una lista 1D o 2D y dar salida a qué elemento es el resultado de la tabla de elaboración!
Entrada
Puede tomar la entrada como una cadena o una lista de longitud 9
o una matriz anidada 2D.
Si toma la entrada como ...
Cuerda
Cada elemento de la tabla es 1 carácter en el carácter ASCII imprimible ( 0x20
a 0x7E
). Para representar un espacio vacío, utiliza un -
eg WWW-W-WWW
sería lo mismo que una mesa de fabricación como
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
| | Wood | |
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
También puede tomar la entrada como una cadena multilínea siempre que se conserven todos los espacios, p. Ej.
WWW
W
WWW
Matriz 1D
Tomaría la entrada como una matriz de caracteres donde los espacios vacíos en la tabla de creación serían un carácter vacío, por ejemplo, la tabla anterior sería ['W','W','W','','W','','W','W','W']
Matriz 2D
Esta vez, cada lista representa una línea en la mesa de trabajo, donde un espacio vacío es un carácter vacío, por ejemplo [['W','W','W'],['','W',''],['W','W','W']]
Puede suponer que la entrada siempre corresponderá a un elemento que se puede crear, y si usa la entrada de matriz, puede reemplazar el carácter vacío con cualquier carácter que no se use como nombre abreviado.
Salida
La salida será el elemento creado a partir de la entrada, en cualquier forma que desee, siempre que sea obvio lo que significa. (Personalmente, usaría mis abreviaturas de 1 letra de los artículos)
Ingredientes
Para este desafío, wood
significa tablones de madera, no troncos de madera.
Solo tienes que manejar los elementos más comunes al crear. Estos son los ingredientes para la elaboración, pero también pueden ser productos de elaboración. La receta de elaboración sigue el formato xxxxxxxxx
como la entrada de cadena anterior. Si un artículo no se puede crear, ---------
se coloca en su lugar.
Algunas recetas no tienen forma , lo que significa que siempre y cuando todos los artículos estén allí, el artículo estará hecho. Estos se denotan ser a *
. Un ejemplo de esto sería pumpkin pie
(no uno en este desafío) que sólo necesita pumpkin
, sugar
y egg
que se harán.
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-
Productos
Esta es una lista de todos los productos que podría manejar para la elaboración. Si el artículo también es un ingrediente, no se incluirá aquí, pero aún debe ser capaz de manejarlo . Cada uno se puede elaborar utilizando solo los ingredientes anteriores y se designa con una letra minúscula única para identificarlo. Armor ( +
) puede usar cualquier ingrediente en [G, I, L, D]
. Las armas ( $
) se pueden hacer de [W, C, I, G, D]
. Sin embargo, como este es un sitio de código de golf , debemos acortar estas listas. [G, I, L, D]
se denota por a Q
y [W, C, I, G, D]
se denota 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
Puntuación
Como no sería razonable pedirle que haga todas estas recetas, ¡solo tiene que hacer las que desee! Pero, por supuesto, cuanto más hagas, mejor será tu puntuación.
El puntaje se define como
score = length of program in bytes / number of working recipes squared
Por ejemplo, esto podría ser una presentación.
input()
print('S')
Como puede suponer que la entrada pasada será una que pueda manejar ( ----W--W-
), siempre generará S
, lo que es equivalente a sticks
. Esto obtendría 18/1 = 18 .
Debe tomar la entrada para ser un programa válido y debe poder manejar al menos 5 entradas diferentes .
La persona con el puntaje más bajo gana.
Reglas
- La puntuación más baja gana
- Puede tomar datos utilizando cualquier método aceptado (parámetros de función, STDIN, etc.)
- Solo puede tomar la entrada en uno de los formularios anteriores. No es demasiado restrictivo y debería ser viable.
- Las lagunas estándar no están permitidas
- Debe tomar entrada
- Debe generar al menos
5
resultados correctos para calificar como competidor. - Para las recetas que no tienen forma, por ejemplo, pepitas de oro, las diferentes combinaciones no cuentan como recetas diferentes.
----W----
es el mismo (en cuanto a recetas) que--W------
y solo es 1 receta. - Por otro lado, para las recetas que usan más de un material, como bloques de materiales, cada material diferente cuenta como una receta diferente, lo que significa que
IIIIIIIII
no es lo mismo (en cuanto a recetas)RRRRRRRRR
.
¡Buena suerte, Minecrafters!
W--W-----
,-W--W----
,--W--W---
,---W--W--
,----W--W-
, o,-----W--W
. ¿Necesitamos manejar solo uno de estos o todos estos?