当您不记得如何在Minecraft中制作东西时,您不讨厌它吗?好了,该纠正一下了!
任务
您的任务是输入一个1D或2D列表,并输出制作表的结果是什么!
输入值
您可以将输入作为字符串或长度列表9
或2D嵌套数组。
如果您将输入作为...
串
表格中的每个项目均以可打印ASCII字符(0x20
至0x7E
)为1个字符。为了表示一个空白空间,您可以使用,-
例如,WWW-W-WWW
将其与手工制作的表格相同
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
| | Wood | |
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
您也可以将输入作为多行字符串,只要保留所有空格,例如
WWW
W
WWW
一维阵列
您将输入作为一个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]
设为a 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
。我们是否只需要处理其中之一或全部?