Ci sono 21 oggetti in Minecraft che puoi creare usando solo legno e oggetti realizzati in legno:
ax
barca
ciotola
pulsante
petto
tabella di crafting
porta
recinzione
cancello
zappa
scala
piccone
tavole
piastra di pressione
pala
segno
lastra
scale
bastone
spada
botola
Questo elenco presuppone che i 6 diversi tipi di assi di legno / lastre / porte / ecc. contano tutti come lo stesso oggetto. Un altro modo di pensarci è quello di supporre di avere accesso a un solo tipo di legno.
Ognuno di questi 21 articoli ha una ricetta artigianale diversa . Rappresenteremo ciascuna di queste ricette come una griglia 2 × 2 o 3 × 3 dei personaggi .WPS. Il .è uno slot vuoto lavorazione, Wè per il legno , Pè per tavole di legno , e Sè per bastoncini . Non sono necessari altri personaggi per questi oggetti particolari.
Ad esempio, questa è la ricetta per un forziere :
PPP
P.P
PPP
Sfida
Scrivi un programma che prende il nome di uno dei nostri 21 oggetti, esattamente come appare sopra, e stampa una ricetta di fabbricazione valida per quell'oggetto.
Le ricette di creazione sono invarianti per la traduzione, quindi se l'input è fencevalido, entrambe sono valide:
PSP
PSP
...
...
PSP
PSP
Se una ricetta si adatta a una griglia 2 × 2, è possibile emetterla in una griglia 2 × 2 o 3 × 3. es stick:
.P
.P
...
.P.
.P.
Le ricette possono anche essere specchiate orizzontalmente (attorno a una linea verticale di simmetria), anche se questo fa solo la differenza per l'ascia, la zappa e le scale. es hoe:
.PP
.S.
.S.
PP.
.S.
.S.
Quindi produrre qualsiasi ricetta che si adatti alla griglia e abbia la forma corretta (ignorando la traduzione e il mirroring) è ciò che il programma deve fare. Queste sono tutte le ricette che il gioco ufficiale riconoscerà. (Nota che le ricette non possono essere ruotate o specchiate verticalmente.)
Dettagli
- Prendi input da stdin o dalla riga di comando. Puoi presumere che l'input sia sempre valido. Richiedere virgolette sull'input (es.
"chest") Va bene. - Uscita su stdout (o alternativa più vicina) con una nuova riga finale facoltativa.
- Vince l' invio più breve in byte .
Esempio
Ecco un elenco di tutti gli input e output di esempio:
axe
PP.
SP.
S..
boat
P.P
PPP
...
bowl
P.P
.P.
...
button
P.
..
chest
PPP
P.P
PPP
crafting table
PP
PP
door
PP.
PP.
PP.
fence
PSP
PSP
...
gate
SPS
SPS
...
hoe
PP.
S..
S..
ladder
S.S
SSS
S.S
pickaxe
PPP
.S.
.S.
planks
W.
..
pressure plate
PP
..
shovel
P..
S..
S..
sign
PPP
PPP
.S.
slab
PPP
...
...
stairs
P..
PP.
PPP
stick
P.
P.
sword
P..
P..
S..
trapdoor
PPP
PPP
...