Tetapkan angka 0 hingga 7 hingga 8 simpul kubus dengan cara apa pun yang Anda inginkan. Tepat satu nomor harus ditetapkan untuk setiap titik.
Misalnya, simpul Anda mungkin ditugaskan seperti ini:
3-----1
/| /|
4-----2 |
| | | |
| 5---|-0
|/ |/
6-----7
Tulis program yang menggunakan bilangan bulat dari 0 hingga 5. Masing-masing dari 6 angka ini dikaitkan dengan tepat satu sisi kubus Anda dengan cara apa pun yang Anda suka. Ketika salah satu dari angka-angka ini adalah input, 4 nomor titik dari wajah yang terkait harus dicetak ke stdout dalam 2 × 2 kuadrat digit. Wajah harus dilihat langsung dari luar kubus. Semua 4 rotasi wajah valid.
Misalnya, jika 0 dikaitkan dengan permukaan depan contoh kubus di atas, maka ini akan menjadi output yang valid untuk input 0:
42
67
Wajah dapat dilihat pada rotasi 90 °, jadi ini juga berlaku:
27
46
76
24
64
72
Output ini (dan rotasinya) tidak valid , karena dilihat dari sisi wajah yang salah:
24
76
Gagasan yang sama berlaku untuk semua wajah lainnya. misalnya jika 1 dikaitkan dengan permukaan belakang, maka input 1mungkin menghasilkan output 13[newline]05(dan 31[newline]50akan menjadi tidak valid).
Jadi tantangan sebenarnya adalah memilih nomor dan rotasi titik Anda sehingga menerjemahkan input ke dalam 4 angka titiknya mudah dan pendek.
Kode terpendek dalam byte menang. Tiebreaker adalah posting sebelumnya. ( Penghitung byte berguna. )
Catatan
- Anda dapat menulis fungsi alih-alih program. Ini harus mengambil bilangan bulat dari 0 hingga 5 dan mencetak atau mengembalikan string grid 2 × 2 digit.
- Ambil input dari stdin, baris perintah, atau fungsi arg. Anda dapat menganggap input valid.
- Output secara opsional dapat memiliki baris tambahan.
- Pastikan untuk memberi tahu kami titik dan nomor wajah yang Anda pilih.