[..] Ajouter le nombre $n à la fin du nom de la variable
Posté : sam. 23 nov. 2013 18:13
Bonjour/bonsoir,
Je tente de tester mes capacités en Autoit en réalisant le Qcm 2014 de Prologin (avis aux amateurs si vous voulez aussi faire de même !).
Je bloque donc sur ce programme :
http://www.prologin.org/training/challe ... 4/sabotage
Ce que j'ai fait :
1. Je demande le nombre n de tuyaux
2. J'assigne le nombre de case(s) que l'on peut avancer en fonction de n
3. Je demande le nombre d'instructions
4. J'entre une à une les instructions : et la fonction correspondante est effectuée après chaque entrée. A pour avancer, R pour reculer et T pour parcourir le tube.
5. J'affiche le résultat
Bien évidemment, c'est le T qui me pose problème...
Le code :
J'utilise donc
Pour créer les variables $valtuyau1, $valtuyau2, ..., $valtuyaun, qui correspondent aux différentes valeurs que va utiliser T.
Par exemple, si on a 3 tuyaux et que le 1er possède la variable $valtuyau1 = 2, l'opération T de l'étape 4 renverra 3 (c'est à dire 1 +2).
Bien évidemment, dans mes 3 fonctions, lorsque l'on dépasse le nombre de tuyau, il est fait en sorte de "recommencer" la boucle des tuyaux, c'est à dire que si l'on se trouve au tuyau 3 après avoir fait T, et que je souhaite faire A, on arrivera à 1.
On a posé $position le numéro de la case à laquelle on se trouve.
Le problème : Dans func tuyau(), je souhaitais que les :
soient lus comme des $valtuyau1, $valtuyau2, ..., $valtuyaun, avec "n" le numéro de la case. Et comme on a affecté à ces variables tout à l'heure un certain nombre, cela permettrait de faire les opérations et de trouver le résultat.
Mais ce dernier code n'est pas pris en compte par autoit comme je le voudrais.
Par exemple, si $position = 1, j'aimerais qu'autoit lise mon code en :
Je reste persuadé que la solution est toute simple, mais je n'arrive pas à mettre la main dessus...
J'ai tenté d'expliquer le plus simplement possible, mais si vous avez des doutes n'hésitez pas à me demander
. Merci d'avance si vous avez le courage de m'aider !
Je tente de tester mes capacités en Autoit en réalisant le Qcm 2014 de Prologin (avis aux amateurs si vous voulez aussi faire de même !).
Je bloque donc sur ce programme :
http://www.prologin.org/training/challe ... 4/sabotage
Ce que j'ai fait :
1. Je demande le nombre n de tuyaux
2. J'assigne le nombre de case(s) que l'on peut avancer en fonction de n
3. Je demande le nombre d'instructions
4. J'entre une à une les instructions : et la fonction correspondante est effectuée après chaque entrée. A pour avancer, R pour reculer et T pour parcourir le tube.
5. J'affiche le résultat
Bien évidemment, c'est le T qui me pose problème...
Le code :
► Afficher le texte
Code : Tout sélectionner
Assign("valtuyau"&$m, $valt, 0)Par exemple, si on a 3 tuyaux et que le 1er possède la variable $valtuyau1 = 2, l'opération T de l'étape 4 renverra 3 (c'est à dire 1 +2).
Bien évidemment, dans mes 3 fonctions, lorsque l'on dépasse le nombre de tuyau, il est fait en sorte de "recommencer" la boucle des tuyaux, c'est à dire que si l'on se trouve au tuyau 3 après avoir fait T, et que je souhaite faire A, on arrivera à 1.
On a posé $position le numéro de la case à laquelle on se trouve.
Le problème : Dans func tuyau(), je souhaitais que les :
Code : Tout sélectionner
Eval('valtuyau'&$position)Mais ce dernier code n'est pas pris en compte par autoit comme je le voudrais.
Par exemple, si $position = 1, j'aimerais qu'autoit lise mon code en :
Code : Tout sélectionner
Func tuyau()
if $position+$valtuyau1 < $nbrtuyau Then
$position = $position+$valtuyau1
Else
$position = ($position+$valtuyau1)-$nbrtuyau
EndIf
EndFuncJ'ai tenté d'expliquer le plus simplement possible, mais si vous avez des doutes n'hésitez pas à me demander