Le défi est de suivre (tracer) le chemin:
^n
- par n lignesvn
- en baisse de n lignes>n
- à droite de n positions de caractère<n
- laissé par n positions de caractères
n
est un entier supérieur à zéro (c'est-à-dire que vous ne pouvez pas recevoir une commande comme>-2
).- Il n'y a pas de séparateurs entre les commandes, l'entrée bien formée ressemble à ceci:,
>5v8<10^3
aucune autre forme d'entrée n'est autorisée. - Le nombre de commandes est illimité.
- Plus aucun caractère n'est censé se glisser dans l'entrée.
Exemples.
L'entrée est une chaîne vide, la sortie:
*
L'entrée est soit
>3
ou<3
: notez que cela ne fait aucune différence pour la sortie:****
Similaire pour
^3
etv3
:* * * *
Entrée:,
>1v2
sortie:** * *
Entrée:,
^4>3v2<1
sortie:**** * * * ** * *
Si vous revenez en arrière et utilisez le même chemin, ne dessinez rien de nouveau. Par exemple
>5<5
******
... même si vous ne dessinez rien de nouveau, vous changez évidemment de position. Par conséquent, si votre entrée ressemble à ceci
>4<2v3
:, la sortie est:***** * * *
Ceci est un exemple plus complexe: 1) le chemin peut se croiser 2) notez que les trois dernières étapes de la dernière commande décalent le chemin entier vers la droite. Entrée:,
v6>4^3<7
sortie:* * * ******** * * * * *****
Entrée :
^2v2>3<3v3>4^5v5>3^5>4v2<4v3>4^3v3>3^5>4v2<4v3>7^5>4v2<4v3>9^3<2^2v2>4^2v2<2v3>8^5>2v4>2^4v5<3>6^5>5<5v2>5<5v2>5<4v1>8^3<1^2v2>1v2>2^3v3>2^2>1^2v2<1v3<3>11^3<2^2v2>4^2v2<2v3>5^5>5<5v2>5<5v2>5<4v1>7^5>4v2<4v3>4^3v3>3^5>4v2<3v1<1v2>3^1>1v1
Production:
* * ***** ***** ***** * * *** * ****** * * * * ****** ***** ***** * * * * * * * * * * * * * * * * * * * * * * * * ***** ***** ***** ***** ***** * * * ****** ** * ** ***** ****** ***** ***** * * * * * * * * * * * * * * * * * * ** * * * * * * * * *** ****** ***** * ****** * * * ** *******************************************************************************************
^2v2>3<3v3>4^5v5>3^5>4v2<4v3>4^3v3>3^5>4v2<4v3>7^5>4v2<4v3>9^3<2^2v2>4^2v2<2v3>8^5>2v4>2^4v5<3>6^5>5<5v2>5<5v2>5<4v1>8^3<1^2v2>1v2>2^3v3>2^2>1^2v2<1v3<3>11^3<2^2v2>4^2v2<2v3>5^5>5<5v2>5<5v2>5<4v1>7^5>4v2<4v3>4^3v3>3^5>4v2<3v1<1v2>3^1>1v1
.Réponses:
MATL , 71 octets
Utilise la version actuelle (6.0.0) du langage / compilateur. Fonctionne en Matlab et en Octave.
EDIT (21 juin 2016): en raison des changements de langue, le code nécessite quelques modifications pour s'exécuter dans la version actuelle (16.0.0). Vous pouvez l' essayer en ligne, y compris les modifications nécessaires.
Exemples
Explication
Le programme comporte quatre étapes principales:
[0 -1]
indique une étape vers la gauche. La première ligne est l'origine du chemin,[1 1]
*
. Normaliser à la valeur minimale1
1
aux coordonnées indiquées par la matrice de l'étape 3, et0
sinon. Celui-ci est ensuite transformé en une matrice de caractères.Code:
la source
JavaScript (ES6), 204
211 210Édition 1 Correction de bogue - sortie '*' pour l'entrée vide
Édition 2 Décodage plus simple de la direction en diff x et y
Voici ma réponse à La carte au trésor , révisée pour répondre aux spécifications.
Moins golfé et expliqué plus ou moins
Tester
la source
*
.Perl, 174 octets
Attend l'entrée comme argument de ligne de commande. N'oubliez pas de citer l'argument!
Exemple:
perl 177.pl "<1^2>3v4<5^6>7v8<9^10>11"
Assez lisible:
la source
05AB1E , 27 octets
Essayez-le en ligne! (2020 est assez proche alors pourquoi pas)
la source