Bạn không ghét nó khi bạn không thể nhớ cách tạo ra thứ gì đó trong Minecraft? Thôi, thời gian để khắc phục điều đó!
Bài tập
Nhiệm vụ của bạn là lấy một đầu vào, dưới dạng danh sách 1D hoặc 2D và xuất ra mục nào là kết quả của bảng chế tạo!
Đầu vào
Bạn có thể lấy đầu vào dưới dạng chuỗi hoặc danh sách độ dài 9
hoặc mảng lồng nhau 2D.
Nếu bạn lấy đầu vào là ...
Chuỗi
Mỗi mục trong bảng là 1 char trong ký tự ASCII có thể in ( 0x20
đến 0x7E
). Để thể hiện một không gian trống, bạn sử dụng một -
ví dụ WWW-W-WWW
sẽ giống như một bảng chế tạo như
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
| | Wood | |
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
Bạn cũng có thể lấy đầu vào dưới dạng một chuỗi nhiều dòng miễn là tất cả các khoảng trắng được giữ nguyên, ví dụ:
WWW
W
WWW
Mảng 1D
Bạn sẽ lấy đầu vào là một mảng char trong đó các khoảng trống trên bảng chế tạo sẽ là một char trống, ví dụ như bảng trên sẽ là ['W','W','W','','W','','W','W','W']
Mảng 2D
Lần này, mỗi danh sách đại diện cho một dòng trên bảng chế tạo, trong đó một khoảng trống là một char trống, vd [['W','W','W'],['','W',''],['W','W','W']]
Bạn có thể giả định rằng đầu vào sẽ luôn tương ứng với một mục có thể được tạo và nếu sử dụng đầu vào mảng, bạn có thể thay thế char trống bằng bất kỳ ký tự nào không được sử dụng làm tên viết tắt.
Đầu ra
Đầu ra sẽ là vật phẩm được chế tạo từ đầu vào, dưới bất kỳ hình thức nào bạn muốn, miễn là nó rõ ràng có nghĩa là gì. (Cá nhân, tôi sẽ sử dụng chữ viết tắt 1 chữ cái của các mục)
Thành phần
Đối với thử thách này, wood
có nghĩa là ván gỗ, không phải gỗ.
Bạn chỉ phải xử lý các mặt hàng phổ biến nhất khi chế tạo. Đây là những thành phần để chế tạo nhưng cũng có thể là sản phẩm của chế tạo. Công thức chế tạo theo định dạng xxxxxxxxx
như đầu vào chuỗi ở trên. Nếu một vật phẩm không thể được chế tạo,---------
thay vào đó được đặt.
Một số công thức nấu ăn là không có hình dạng , có nghĩa là chỉ cần miễn là tất cả các mặt hàng ở đó, các mặt hàng sẽ được thực hiện. Chúng được ký hiệu là a *
. Một ví dụ về điều này sẽ là pumpkin pie
(không phải là một trong thử thách này) mà chỉ cần pumpkin
, sugar
và egg
được thực hiện.
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-
Các sản phẩm
Đây là danh sách tất cả các sản phẩm mà bạn có thể xử lý để chế tạo. nếu vật phẩm cũng là một thành phần, nó sẽ không được đưa vào đây nhưng bạn vẫn có thể xử lý nó . Mỗi người có thể được chế tạo bằng cách chỉ sử dụng các thành phần trên và được chỉ định một chữ cái viết thường, duy nhất để xác định nó. Armor ( +
) có thể sử dụng bất kỳ thành phần nào trong [G, I, L, D]
. Vũ khí ( $
) có thể được làm từ [W, C, I, G, D]
. Vì đây là một trang web chơi gôn , tuy nhiên, chúng tôi cần làm cho các danh sách này ngắn hơn. [G, I, L, D]
được ký hiệu là a Q
và [W, C, I, G, D]
được ký hiệu là 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
Chấm điểm
Vì sẽ không hợp lý khi yêu cầu bạn thực hiện tất cả các công thức này, bạn chỉ phải làm những công việc bạn muốn! Nhưng tất nhiên, bạn càng làm, điểm số của bạn càng tốt.
Điểm được định nghĩa là
score = length of program in bytes / number of working recipes squared
Ví dụ, đây có thể là một đệ trình.
input()
print('S')
Như bạn có thể giả sử rằng đầu vào được truyền sẽ là một đầu vào mà nó có thể xử lý ( ----W--W-
), nó sẽ luôn xuất ra S
, tương đương với sticks
. Điều này sẽ ghi được 18/1 = 18 .
Bạn phải lấy đầu vào là một chương trình hợp lệ và bạn phải có khả năng xử lý ít nhất 5 đầu vào khác nhau .
Người có số điểm thấp nhất sẽ thắng.
Quy tắc
- Điểm số thấp nhất sẽ thắng
- Bạn có thể nhận đầu vào bằng bất kỳ phương thức được chấp nhận nào (tham số chức năng, STDIN, v.v.)
- Bạn chỉ có thể lấy đầu vào ở một trong các hình thức trên. Nó không quá hạn chế và có thể thực hiện được
- Các sơ hở tiêu chuẩn không được phép
- Bạn phải lấy đầu vào
- Bạn phải xuất ít nhất
5
kết quả chính xác để đủ điều kiện là cạnh tranh. - Đối với các công thức nấu ăn không có hình dạng, ví dụ như vàng cốm, các kết hợp khác nhau không được tính là các công thức khác nhau.
----W----
là giống nhau (công thức-khôn ngoan) như--W------
và chỉ có 1 công thức. - Mặt khác, đối với các công thức nấu ăn sử dụng nhiều hơn một nguyên liệu, chẳng hạn như các khối nguyên liệu, mỗi nguyên liệu khác nhau được tính là một công thức khác nhau, có nghĩa
IIIIIIIII
là không giống nhau (theo công thức)RRRRRRRRR
.
Chúc may mắn, Minecrafters!
W--W-----
,-W--W----
,--W--W---
,---W--W--
,----W--W-
, hay,-----W--W
. chúng ta chỉ cần xử lý một trong số này hay tất cả những thứ này?