คุณไม่ชอบเมื่อคุณจำวิธีการประดิษฐ์บางอย่างใน Minecraft ไม่ได้ใช่ไหม ถึงเวลาแก้ไขแล้ว!
งาน
งานของคุณคือการป้อนข้อมูลไม่ว่าจะเป็นรายการ 1D หรือ 2D และส่งออกว่ารายการใดเป็นผลมาจากตารางการประดิษฐ์!
อินพุต
คุณสามารถรับอินพุตเป็นสตริงหรือรายการความยาว9
หรืออาร์เรย์ซ้อนซ้อนแบบ 2D ได้
หากคุณรับข้อมูลเป็น ...
เชือก
แต่ละรายการในตารางคือ 1 อักขระในอักขระ ASCII ที่พิมพ์ได้ ( 0x20
ไป0x7E
) เพื่อเป็นตัวแทนของพื้นที่ว่างคุณใช้-
เช่นWWW-W-WWW
จะเป็นเช่นเดียวกับตารางงานหัตถกรรมเช่น
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
| | Wood | |
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
นอกจากนี้คุณยังสามารถป้อนข้อมูลเป็นสตริงแบบหลายบรรทัดตราบใดที่มีการเว้นช่องว่างทั้งหมดเช่น
WWW
W
WWW
อาร์เรย์ 1D
คุณจะนำเข้าเป็นอาร์เรย์ถ่านที่ช่องว่างในตารางหัตถกรรมจะเป็นถ่านเปล่าเช่นตารางข้างต้นจะเป็น ['W','W','W','','W','','W','W','W']
อาร์เรย์ 2 มิติ
เวลานี้แต่ละรายการจะแสดงบรรทัดบนตารางการประดิษฐ์โดยที่พื้นที่ว่างเป็นตัวอักษรว่างเปล่าเช่น [['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
เป็น
ขอให้โชคดี Minecrafters!
W--W-----
,-W--W----
,--W--W---
,---W--W--
, หรือ----W--W-
-----W--W
เราจำเป็นต้องจัดการเพียงหนึ่งในสิ่งเหล่านี้หรือทั้งหมดเหล่านี้หรือไม่