Hassen Sie es nicht, wenn Sie sich nicht erinnern können, wie man in Minecraft etwas herstellt? Nun, es ist Zeit, dem abzuhelfen!
Aufgabe
Deine Aufgabe ist es, eine Eingabe entweder als 1D- oder 2D-Liste zu machen und auszugeben, welcher Gegenstand das Ergebnis der Herstellungstabelle ist!
Eingang
Sie können Eingaben entweder als Zeichenfolge oder als Längenliste 9
oder als 2D-verschachteltes Array vornehmen.
Wenn Sie Eingaben als ...
String
Jedes Element in der Tabelle ist 1 Zeichen im druckbaren ASCII-Zeichen ( 0x20
bis 0x7E
). Um einen leeren Raum darzustellen, verwenden Sie ein -
Beispiel WWW-W-WWW
, das einem Basteltisch ähnelt
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
| | Wood | |
+------+------+------+
| Wood | Wood | Wood |
+------+------+------+
Sie können Eingaben auch als mehrzeilige Zeichenfolge verwenden, sofern alle Leerzeichen erhalten bleiben, z
WWW
W
WWW
1D Array
Sie würden die Eingabe als Zeichen-Array annehmen, wobei leere Stellen auf der Herstellungstabelle ein leeres Zeichen wären, z. B. obige Tabelle ['W','W','W','','W','','W','W','W']
2D-Array
Diesmal stellt jede Liste eine Zeile auf dem Handwerkstisch dar, wobei ein leerer Raum ein leeres Zeichen ist, z [['W','W','W'],['','W',''],['W','W','W']]
Sie können davon ausgehen, dass die Eingabe immer einem herstellbaren Element entspricht. Wenn Sie eine Array-Eingabe verwenden, können Sie das leere Zeichen durch ein beliebiges Zeichen ersetzen, das nicht als abgekürzter Name verwendet wird.
Ausgabe
Die Ausgabe ist das Element, das aus der Eingabe in jeder gewünschten Form erstellt wird, sofern klar ist, was dies bedeutet. (Persönlich würde ich meine 1-Buchstaben-Abkürzungen der Artikel verwenden)
Zutaten
Für diese Herausforderung wood
bedeutet Holzbohlen, nicht Holzstämme.
Sie müssen beim Herstellen nur mit den häufigsten Gegenständen umgehen. Dies sind die Zutaten für das Handwerk, können aber auch Handwerksprodukte sein. Das Herstellungsrezept folgt dem oben angegebenen Format xxxxxxxxx
. Wenn ein Gegenstand nicht hergestellt werden kann, ---------
wird er stattdessen platziert.
Einige Rezepte sind formlos , was bedeutet, dass der Gegenstand hergestellt wird, solange alle Gegenstände vorhanden sind. Diese werden mit a bezeichnet *
. Ein Beispiel hierfür wäre pumpkin pie
(nicht ein in dieser Herausforderung) , dass nur braucht pumpkin
, sugar
und egg
gemacht werden.
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-
Produkte
Dies ist eine Liste aller Produkte, die Sie zum Herstellen verwenden können. Wenn der Gegenstand auch eine Zutat ist, wird er hier nicht aufgeführt, aber Sie müssen trotzdem damit umgehen können . Jedes kann nur mit den oben genannten Zutaten hergestellt werden und ist mit einem eindeutigen Kleinbuchstaben gekennzeichnet, um es zu identifizieren. In Armor ( +
) können alle Zutaten verwendet werden [G, I, L, D]
. Waffen ( $
) können aus gemacht werden [W, C, I, G, D]
. Da es sich jedoch um eine Code-Golf- Site handelt, müssen diese Listen verkürzt werden. [G, I, L, D]
wird mit a bezeichnet Q
und [W, C, I, G, D]
wird mit a bezeichnet 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
Wertung
Da es unvernünftig wäre, Sie zu bitten, alle diese Rezepte zu machen, müssen Sie nur die Rezepte machen, die Sie wollen! Aber natürlich, je mehr Sie tun, desto besser ist Ihre Punktzahl.
Punktzahl ist definiert als
score = length of program in bytes / number of working recipes squared
Dies könnte beispielsweise eine Einreichung sein.
input()
print('S')
Da Sie davon ausgehen können, dass die übergebene Eingabe eine Eingabe ist, die sie verarbeiten kann ( ----W--W-
), wird sie immer ausgegeben S
, was äquivalent zu ist sticks
. Dies würde 18/1 = 18 ergeben .
Sie müssen Eingaben vornehmen , um ein gültiges Programm zu sein, und Sie müssen in der Lage sein, mindestens 5 verschiedene Eingaben zu verarbeiten.
Die Person mit der niedrigsten Punktzahl gewinnt.
Regeln
- Die niedrigste Punktzahl gewinnt
- Sie können Eingaben mit jeder akzeptierten Methode (Funktionsparameter, STDIN usw.) vornehmen.
- Sie können Eingaben nur in einer der oben genannten Formen vornehmen. Es ist nicht zu restriktiv und sollte praktikabel sein
- Standardlücken sind nicht zulässig
- Sie müssen Eingaben machen
- Sie müssen mindestens
5
korrekte Ergebnisse ausgeben, um sich als Teilnehmer zu qualifizieren. - Bei formlosen Rezepten, z. B. Goldnuggets, gelten unterschiedliche Kombinationen nicht als unterschiedliche Rezepte.
----W----
ist das gleiche (rezeptweise) wie--W------
und ist nur 1 Rezept. - Auf der Kehrseite dieses, für Rezepte , die mehr als ein Material, wie beispielsweise Materialblocks verwenden, die jeweils unterschiedliches Material zählt als anderes Rezept, was bedeutet , dass
IIIIIIIII
nicht das gleiche ist (Rezept-wise) alsRRRRRRRRR
.
Viel Glück, Minecrafters!
W--W-----
,-W--W----
,--W--W---
,---W--W--
,----W--W-
, oder-----W--W
. Müssen wir nur eine oder alle behandeln?