Хіба ви не ненавидите це, коли не можете згадати, як щось майструвати в Minecraft? Ну, час це виправити!
Завдання
Ваше завдання - взяти вхід як 1D або 2D список і вивести, який елемент є результатом таблиці майстрів!
Вхідні дані
Ви можете приймати дані як рядок або список довжини 9
або 2D вкладений масив.
Якщо ви сприймаєте інформацію як ...
Рядок
Кожен елемент таблиці має 1 знак у символі ASCII для друку ( 0x20
до 0x7E
). Щоб представити порожній простір, ви використовуєте, -
наприклад, WWW-W-WWW
було б те саме, що і крафтовий стіл
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
| | Wood | |
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
Ви також можете приймати дані як багаторядкові рядки до тих пір, поки всі пробіли збережені, наприклад
WWW
W
WWW
1D масив
Ви б сприймали введення як масив char, де порожні пробіли на таблиці обробляються порожнім знаком, наприклад, наведена вище таблиця ['W','W','W','','W','','W','W','W']
2D масив
Цього разу кожен список являє собою рядок таблиці оброблення, де порожній простір - порожній знак, наприклад [['W','W','W'],['','W',''],['W','W','W']]
Можна припустити, що вхід завжди буде відповідати елементу, який можна створити, і якщо ви використовуєте введення масиву, ви можете замінити порожній знак будь-яким символом, який не використовується як скорочене ім'я.
Вихідні дані
Вихід буде предметом, створеним із вхідних даних, у будь-якій формі, до якої ви хочете, доки очевидно, що це означає. (Особисто я використовував би свої абревіатури з 1 літери)
Інгредієнти
Для цього завдання мають на wood
увазі дерев'яні дошки, а не дерев’яні колоди.
Потрібно обробляти лише найпоширеніші предмети при крафті. Це інгредієнти для крафтингу, але вони також можуть бути продуктами крафтоутворення. Рецепт виготовлення слідує такому формату, xxxxxxxxx
як введення рядка вище. Якщо елемент неможливо створити, ---------
замість цього розміщується.
Деякі рецепти є безформними , це означає, що так довго, поки всі предмети є, предмет буде зроблений. Вони позначаються як a *
. Прикладом цього може бути pumpkin pie
(не один із цього виклику), який лише потребує pumpkin
, sugar
і egg
його потрібно зробити.
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-
Продукція
Це перелік усіх продуктів, з якими ви могли впоратися з крафтом. якщо предмет також є інгредієнтом, він сюди не буде включений, але ви все одно маєте змогу обробляти його . Кожен з них може бути створений, використовуючи лише інгредієнти, наведені вище, і позначається унікальною малою літерою для його ідентифікації. Броня ( +
) може використовувати будь-який інгредієнт в [G, I, L, D]
. Зброя ( $
) може бути виготовлена з [W, C, I, G, D]
. Оскільки це веб - сайт з кодовим гольфом , нам потрібно скоротити ці списки. [G, I, L, D]
позначається а Q
і [W, C, I, G, D]
позначається а 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
Оцінка балів
Як було б нерозумно просити вас виконувати всі ці рецепти, ви повинні робити лише ті, що хочете! Але звичайно, чим більше ви робите, тим краще ваш рахунок.
Оцінка визначається як
score = length of program in bytes / number of working recipes squared
Наприклад, це може бути подання.
input()
print('S')
Як ви можете припустити, що переданий вхід буде таким, який він може обробити ( ----W--W-
), він завжди буде виводити S
, що еквівалентно sticks
. Це дасть бал 18/1 = 18 .
Ви повинні приймати дані, щоб бути дійсною програмою, і ви повинні мати можливість обробляти щонайменше 5 різних входів.
Перемагає людина з найнижчою оцінкою.
Правила
- Виграє найнижчий рахунок
- Ви можете приймати дані, використовуючи будь-який прийнятий метод (параметри функції, STDIN тощо)
- Ви можете взяти дані лише в одній з перерахованих вище форм. Він не надто обмежувальний і повинен бути працездатним
- Стандартні лазівки заборонені
- Ви повинні взяти вклад
- Ви повинні вивести принаймні
5
правильні результати, щоб визнатись змагальними. - Для безрецептурних рецептів, наприклад, золотих самородків, різні комбінації не вважаються різними рецептами.
----W----
такий самий (рецепт), як--W------
і лише 1 рецепт. - З іншого боку, для рецептів, в яких використовується більше одного матеріалу, таких як матеріальні блоки, кожен різний матеріал вважається різним рецептом, тобто означає, що
IIIIIIIII
він не такий (як рецепт)RRRRRRRRR
.
Удачі, Minecrafters!
W--W-----
,-W--W----
,--W--W---
,---W--W--
,----W--W-
, або,-----W--W
. чи потрібно нам обробляти лише один із цих чи всіх цих?