On considère un robot capable d'effectuer trois actions :
avancer d'un pas,
tourner à droite,
tourner à gauche.
Ces actions sont fournies au robot sous forme d'une chaîne de caractères :
"A" pour avancer d'un pas,
"D" pour tourner à droite,
"G" pour tourner à gauche.
Il est possible de répéter une action en faisant suivre celle-ci d'un nombre entier positif ou nul. Ainsi ["A",12] permet de faire avancer le robot de 12 pas.
On demande d'écrire la fonction decoupe qui prend en paramètre la chaîne de caractères contenant les instructions à effectuer ainsi que des caractères invalides et renvoie la liste de ces instructions élémentaires : les lettres "A", "D" ou "G" ou des nombre entiers positifs ou nuls.
Attention :
les nombres entiers de plus de un chiffre doivent être « regroupés » : ["A",12] et pas ["A",1,2] ;
les caractères invalides doivent être ignorés : decoupe("A toto 1e2") doit renvoyer ["A",12].
On garantit que chaque nombre entier est précédé d'une instruction valide. Il est toutefois possible que ces deux instructions soient séparées par des caractères à ignorer et que les différents chiffres composant un nombre soient aussi séparés par des caractères invalides.
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)