Minecraft에서 무언가를 제작하는 방법을 기억할 수 없을 때 싫어하지 않습니까? 글쎄, 그것을 해결하는 시간!
직무
당신의 임무는 1D 또는 2D 목록으로 입력을 받고 크래프팅 테이블의 결과로 어떤 아이템을 출력하는 것입니다!
입력
문자열 또는 길이 목록 9또는 2D 중첩 배열 로 입력을받을 수 있습니다 .
당신이 입력으로 가져 가면 ...
끈
표의 각 항목은 인쇄 가능한 ASCII 문자 ( 0x20~ 0x7E) 에서 1 자 입니다. 빈 공간을 표현하기 위해, 당신은 사용 -예는 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은 위의 문자열 입력과 같은 형식을 따릅니다 . 아이템을 제작할 수 없으면 ---------대신에 배치됩니다.
일부 요리법은 모양이 없으므로 모든 항목이있는 한 항목이 만들어집니다. 이들은로 표시 *됩니다. 이것의 예로들 수 있습니다 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]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
채점
이러한 레시피를 모두 요청하는 것은 불합리하므로 원하는 것만 수행하면됩니다! 그러나 물론할수록 점수가 높아집니다.
점수는 다음과 같이 정의됩니다
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------합니다. - 이것의 반대로, 재료 블록과 같이 하나 이상의 재료를 사용하는 레시피의 경우, 각기 다른 재료는 서로 다른 레시피로 계산
IIIIIIIII됩니다RRRRRRRRR.
행운을 빕니다, Minecrafters!
W--W-----,-W--W----,--W--W---,---W--W--,----W--W-, 또는-----W--W. 이 중 하나 또는 전부를 처리해야합니까?