Assegna i numeri da 0 a 7 agli 8 vertici di un cubo nel modo che preferisci. È necessario assegnare esattamente un numero a ciascun vertice.
Ad esempio, i vertici potrebbero essere assegnati in questo modo:
3-----1
/| /|
4-----2 |
| | | |
| 5---|-0
|/ |/
6-----7
Scrivi un programma che includa un numero intero compreso tra 0 e 5. Ciascuno di questi 6 numeri è associato esattamente a una faccia del cubo nel modo che preferisci. Quando viene inserito uno di questi numeri, i 4 numeri dei vertici della faccia associata devono essere stampati su stdout in un quadrato di 2 × 2 cifre. La faccia deve essere vista direttamente dall'esterno del cubo. Tutte le 4 rotazioni della faccia sono valide.
Ad esempio, se 0 è associato alla faccia anteriore del cubo di esempio sopra, questo sarebbe un output valido per l'input 0:
42
67
La faccia può essere visualizzata a qualsiasi rotazione di 90 °, quindi sono validi anche:
27
46
76
24
64
72
Questo output (e le sue rotazioni) non sono validi , poiché sono visualizzati dal lato sbagliato della faccia:
24
76
La stessa idea si applica a tutte le altre facce. ad es. se 1 è associato alla faccia posteriore, l'input 1potrebbe produrre output 13[newline]05(e non 31[newline]50sarebbe valido).
Quindi la vera sfida è scegliere i numeri dei vertici e le rotazioni in modo tale che tradurre l'ingresso nei suoi 4 numeri dei vertici sia facile e breve.
Vince il codice più breve in byte. Tiebreaker è post precedente. ( Pratico contatore di byte. )
Appunti
- È possibile scrivere una funzione anziché un programma. Dovrebbe richiedere un numero intero compreso tra 0 e 5 e stampare o restituire la stringa della griglia di 2 × 2 cifre.
- Accetta input da stdin, dalla riga di comando o dalla funzione arg. Si può presumere che l'input sia valido.
- L'output può facoltativamente avere una nuova riga finale.
- Assicurati di dirci il vertice e il numero di facce che hai scelto.