Attribuez les chiffres de 0 à 7 aux 8 sommets d'un cube comme vous le souhaitez. Un seul numéro doit être attribué à chaque sommet.
Par exemple, vos sommets peuvent être affectés comme ceci:
3-----1
/| /|
4-----2 |
| | | |
| 5---|-0
|/ |/
6-----7
Écrivez un programme qui accepte un entier de 0 à 5. Chacun de ces 6 nombres est associé à exactement une face de votre cube de la manière que vous voulez. Lorsqu'un de ces nombres est entré, les 4 nombres de sommets de la face associée doivent être imprimés sur stdout dans un carré de 2 × 2 chiffres. Le visage doit être vu directement de l'extérieur du cube. Les 4 rotations de visage sont valides.
Par exemple, si 0 est associé à la face avant de l'exemple de cube ci-dessus, alors ce serait une sortie valide pour l'entrée 0
:
42
67
Le visage peut être visualisé à n'importe quelle rotation de 90 °, ils sont donc également valables:
27
46
76
24
64
72
Cette sortie (et ses rotations) ne sont pas valides , car elles sont vues du mauvais côté du visage:
24
76
La même idée s'applique à tous les autres visages. Par exemple, si 1 est associé à la face arrière, l'entrée 1
peut produire une sortie 13[newline]05
(et 31[newline]50
ne sera pas valide).
Le véritable défi consiste donc à choisir vos nombres de sommets et vos rotations de sorte que la traduction de l'entrée en ses 4 nombres de sommets soit facile et courte.
Le code le plus court en octets gagne. Tiebreaker est un post antérieur. ( Compteur d'octets pratique. )
Remarques
- Vous pouvez écrire une fonction au lieu d'un programme. Il doit prendre un entier de 0 à 5 et imprimer ou renvoyer la chaîne de grille à 2 × 2 chiffres.
- Prenez l'entrée de stdin, de la ligne de commande ou de la fonction arg. Vous pouvez supposer que la saisie est valide.
- La sortie peut éventuellement avoir une nouvelle ligne de fin.
- Assurez-vous de nous indiquer les nombres de sommets et de faces que vous avez choisis.