Czy nie nienawidzisz tego, gdy nie pamiętasz, jak stworzyć coś w Minecraft? Czas to naprawić!
Zadanie
Twoim zadaniem jest wziąć dane wejściowe, jako listę 1D lub 2D i wypisać, jaki przedmiot jest wynikiem tabeli rzemieślniczej!
Wejście
Możesz wziąć dane wejściowe jako ciąg znaków, listę długości 9
lub zagnieżdżoną tablicę 2D.
Jeśli weźmiesz wkład jako ...
Strunowy
Każdy element w tabeli ma 1 znak w drukowanym znaku ASCII ( 0x20
do 0x7E
). Aby przedstawić pustą przestrzeń, użyj -
np. WWW-W-WWW
Byłby taki sam jak stół rzemieślniczy jak
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
| | Wood | |
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
Możesz również wziąć dane wejściowe jako ciąg wielowierszowy, o ile wszystkie spacje są zachowane, np
WWW
W
WWW
Tablica 1D
Wziąłbyś dane wejściowe jako tablicę znaków, w której puste miejsca na stole rzemieślniczym byłyby pustym znakiem, np. Powyższa tabela byłaby ['W','W','W','','W','','W','W','W']
Tablica 2D
Tym razem każda lista reprezentuje linię na stole rzemieślniczym, gdzie puste miejsce to pusty znak, np [['W','W','W'],['','W',''],['W','W','W']]
Możesz założyć, że dane wejściowe zawsze będą odpowiadały elementom, które można spreparować, a jeśli używasz danych tablicowych, możesz zastąpić pusty znak dowolnym znakiem nieużywanym jako nazwa skrócona.
Wynik
Wyjście będzie przedmiotem wytworzonym na podstawie danych wejściowych, w dowolnej formie, o ile będzie oczywiste, co to znaczy. (Osobiście użyłbym moich 1-literowych skrótów pozycji)
Składniki
Dla tego wyzwania wood
oznacza drewniane deski, a nie drewniane kłody.
Podczas wytwarzania musisz obsługiwać tylko najczęstsze przedmioty. Są to składniki rzemieślnicze, ale mogą być również produktami rzemieślniczymi. Przepis wytwarzania ma format xxxxxxxxx
podobny do powyższego ciągu znaków. Jeśli przedmiot nie może zostać wytworzony, ---------
zamiast tego jest umieszczany.
Niektóre przepisy są bezkształtne , co oznacza, że dopóki wszystkie elementy będą dostępne, przedmiot zostanie wykonany. Są one oznaczone jako a *
. Przykładem tego będzie pumpkin pie
(nie jeden na to wyzwanie), który tylko potrzebuje pumpkin
, sugar
a egg
które mają być wykonane.
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-
Produkty
To jest lista wszystkich produktów, które możesz wykorzystać do tworzenia. jeśli przedmiot jest również składnikiem, nie zostanie tu uwzględniony, ale nadal musisz go obsługiwać . Każdy z nich może być wykonany przy użyciu wyłącznie powyższych składników i jest oznaczony unikalną, małą literą, aby go zidentyfikować. Pancerz ( +
) może używać dowolnego składnika [G, I, L, D]
. Broń ( $
) może być wykonana z [W, C, I, G, D]
. Ponieważ jest to strona z kodem do golfa , musimy skrócić te listy. [G, I, L, D]
jest oznaczony przez a Q
i [W, C, I, G, D]
jest oznaczony przez 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
Punktacja
Ponieważ nierozsądne byłoby prosić cię o wykonanie wszystkich tych przepisów, musisz zrobić tylko te, które chcesz! Ale im więcej tego zrobisz, tym lepszy wynik.
Wynik jest zdefiniowany jako
score = length of program in bytes / number of working recipes squared
Na przykład może to być przesłanie.
input()
print('S')
Jak można założyć, że przekazane dane wejściowe będą w stanie obsłużyć ( ----W--W-
), zawsze będą generować dane wyjściowe S
, co jest równoważne z sticks
. Dałoby to wynik 18/1 = 18 .
Musisz wziąć dane wejściowe, aby być poprawnym programem i musisz być w stanie obsłużyć co najmniej 5 różnych danych wejściowych.
Osoba z najniższym wynikiem wygrywa.
Zasady
- Najniższy wynik wygrywa
- Możesz przyjmować dane wejściowe przy użyciu dowolnej zaakceptowanej metody (parametry funkcji, STDIN itp.)
- Możesz przyjmować dane tylko w jednym z powyższych formularzy. Nie jest zbyt restrykcyjny i powinien być wykonalny
- Standardowe luki są niedozwolone
- Musisz wziąć wkład
- Musisz podać co najmniej
5
poprawne wyniki, aby zakwalifikować się jako konkurencyjny. - W przypadku przepisów bezkształtnych, np. Złote samorodki, różne kombinacje nie liczą się jako różne przepisy.
----W----
jest taki sam (pod względem przepisów) jak--W------
i jest tylko 1 przepisem. - Z drugiej strony, w przypadku przepisów, które wykorzystują więcej niż jeden materiał, takich jak bloki materiałów, każdy inny materiał liczy się jako inny przepis, co oznacza, że
IIIIIIIII
nie jest taki sam (pod względem receptury) jakRRRRRRRRR
.
Powodzenia, Minecrafters!
W--W-----
,-W--W----
,--W--W---
,---W--W--
,----W--W-
, lub-----W--W
. czy potrzebujemy obsługiwać tylko jedną z nich, czy wszystkie z nich?