Le but de ce défi est de représenter graphiquement une marche sur le plan, où la direction de chaque étape est déterminée par la primalité de et la parité de son développement binaire. Plus précisément,
- La direction initiale est fixe, disons le nord.
- Toutes les étapes ont la même longueur .
- La direction de l’étape peut être Nord, Ouest, Sud ou Est, et est déterminée comme suit:
- Si n'est pas premier, la direction ne change pas.
- Si est premier et que l'expansion binaire de a un nombre pair, tournez à droite.
- Si est premier et que l'expansion binaire de a un nombre impair de 1, tournez à gauche.
En tant qu'exemple travaillé , supposons que la direction initiale est le nord. Les premières étapes sont:
- n'est pas premier. Nous faisons donc un pas dans la direction actuelle, qui est le nord.
- est premier et son développement binaire
10
, a et un nombre impair de uns. Alors on tourne à gauche et on fait maintenant face à l'ouest. Nous faisons un pas dans cette direction. - est premier et son développement binaire
11
, a et même nombre d'unités. Nous tournons donc à droite et faisons maintenant face au nord. Nous faisons un pas dans cette direction. - n'est pas premier. Nous faisons donc un pas dans la direction actuelle, qui est le nord.
Le défi
Entrée : nombre entier positif .
Sortie : tracé de la marche en étapes telle que définie ci-dessus.
Règles supplémentaires
- La direction initiale peut être choisie librement (pas nécessairement du Nord), mais devrait être le même pour tous .
- La règle de retournement peut être l'inverse de celle décrite ci-dessus, c'est-à-dire tourner à droite pour une parité impair et à gauche pour un niveau pair; mais il doit être le même pour tous .
- La sortie doit être une représentation graphique de la promenade. Par exemple:
- La promenade peut être dessinée avec des segments de ligne.
- Les points visités peuvent être affichés avec un marqueur, tel qu'un point; avec ou sans connexion de segments de ligne.
- Une image matricielle à deux couleurs peut être fournie, une couleur correspondant aux points visités et une autre aux non visités.
- Les échelles des axes horizontal et vertical ne doivent pas nécessairement être identiques. Les étiquettes d'axe et les éléments similaires sont également facultatifs. Tant que la promenade est clairement visible, l'intrigue est valable.
- Notez que certains points sont visités plus d'une fois. L'intrigue n'est pas sensible à cela. Par exemple, si des segments de ligne sont affichés dans le tracé, chaque segment d'unité est affiché de la même manière quel que soit le nombre de passages parcourus.
- Le code devrait fonctionner pour toutes les
N
ressources illimitées. Il est acceptable que, dans la pratique, il échoue pour de grandesN
raison de contraintes de temps, de mémoire ou de types de données. - L'entrée et la sortie sont flexibles comme d'habitude. En particulier, l’un quelconque des moyens standard de sortie d'images peut être utilisé.
- Le code le plus court en octets gagne.
Cas de test
Les placettes suivantes utilisent le nord comme direction initiale; même la parité tourne à droite; et la promenade est représentée avec des segments de ligne.
N = 7
:
N = 3000
:
N = 20000
:
N = 159000
:
N = 1200000
:
N = 11000000
:
[graphical-output]
est autorisée? Une raison en particulier de rejeter la sortie ASCII, comme ma réponse Charcoal maintenant supprimée?