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
. 이 중 하나 또는 전부를 처리해야합니까?