Разве ты не ненавидишь, когда не помнишь, как создать что-то в Minecraft? Что ж, пора это исправить!
задача
Ваша задача - взять данные в виде 1D или 2D списка и вывести, какой предмет является результатом таблицы крафта!
вход
Вы можете использовать входные данные в виде строки, списка длины 9
или двумерного вложенного массива.
Если вы принимаете вход как ...
строка
Каждый элемент в таблице содержит 1 символ в печатном символе ASCII ( 0x20
до 0x7E
). Чтобы представить пустое пространство, вы должны использовать -
например WWW-W-WWW
, будет такой же, как таблица крафта, как
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
| | Wood | |
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
Вы также можете принять ввод в виде многострочной строки, если все пробелы сохранены, например
WWW
W
WWW
1D массив
Вы бы взяли входные данные в виде массива char, где пустые места в таблице крафта были бы пустым char, например, приведенная выше таблица будет ['W','W','W','','W','','W','W','W']
2D массив
На этот раз каждый список представляет строку в таблице крафта, где пустое пространство - это пустой символ, например [['W','W','W'],['','W',''],['W','W','W']]
Вы можете предположить, что ввод всегда будет соответствовать элементу, который может быть создан, и, если используется ввод массива, вы можете заменить пустой символ любым символом, не используемым в качестве сокращенного имени.
Выход
Выводом будет элемент, созданный из входных данных, в любой форме, которую вы хотите, если очевидно, что это означает. (Лично я бы использовал свои 1 буквенные сокращения пунктов)
Ингредиенты
Для этого вызов wood
означает деревянные доски, а не деревянные бревна.
Вы должны обрабатывать только самые распространенные предметы при изготовлении. Это ингредиенты для крафта, но также могут быть и продукты крафта. Рецепт крафтинга следует формату, xxxxxxxxx
подобному строковому вводу выше. Если предмет не может быть обработан, ---------
вместо него помещается.
Некоторые рецепты бесформенны , это означает, что, пока все предметы есть, предмет будет изготовлен. Они обозначены как *
. Примером этого может быть 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
.
Удачи, майнкрафтеры!
W--W-----
,-W--W----
,--W--W---
,---W--W--
,----W--W-
, или,-----W--W
. нам нужно обрабатывать только один из них или все из них?