Programme plus complexe

Lundi 30 janvier 2006, par Pierre Couillard // NQC : Not Quite C

Technique de base pour faire des virages

Vous pouvez faire exécuter des virages à votre robot en arrêtant ou en changeant complètement la direction d’un des deux moteurs. Voici un exemple. Tapez-le le code suivant dans votre éditeur, téléchargez-le à votre robot et lancez-le. Vous devriez obtenir comme résultat que votre robot roule quelque peu et exécute par la suite un virage à 90 degrés.

Il est possible que vous ayiez essayer certains nombres légèrement différents de 85 dans le deuxième Wait() : la commande pour faire un virage précis à 90 degrés. Cela dépend du type de surface sur laquelle le robot roule. Plutôt qu’un changement de ce type dans le programme, il est plus facile d’utiliser un nom pour ce nombre. Dans NQC vous pouvez définir des valeurs constantes comme indiqué dans le programme suivant.

Les deux premières lignes définissent deux constantes. Celles-ci peuvent maintenant être employées partout dans le programme. La définition de constantes est pratique pour deux raisons : il rend le programme plus lisible et il est ainsi plus facile de changer les valeurs. Notez que le centre de commande du RCX donne aux déclarations de définition leur propre couleur. Comme nous le verrons un peu plus tard, vous pouvez aussi définir d’autres choses que des constantes.

Commandes de répétition

Essayons maintenant d’écrire un programme qui fait exécuter une trajectoire carrée au robot. Une trajectoire carrée signifie : marche en avant, virage 90 degrés, marche en avant de nouveau, virage 90 degrés, etc. Nous pourrions répéter ce morceau de code quatre fois mais cela peut être fait beaucoup plus facilement avec la déclaration repeat.

Le nombre que l’on retrouve entre parenthèses avec la déclaration repeat, indique le nombre de fois la répétition de l’action. Les déclarations qui doivent être répétées sont mises entre parenthèses, comme les déclarations dans une tâche. Notez que, dans le programme ci-haut, nous indentons aussi les déclarations. Ce n’est pas nécessaire, mais il rend le programme plus lisible. Comme exemple final, nous allons faire exécuter 10 carrés à notre robot. Voici le programme :

Il y a maintenant une déclaration de répétition à l’intérieur de l’autre. Nous appelons cela une déclaration de répétition "imbriquée". Vous pouvez avoir des déclarations de répétition imbriquée autant que vous souhaitez. Soyez attentif aux parenthèses et l’indentation employée dans le programme. La tâche commence à la première parenthèse et se termine à la dernière. La première déclaration de répétition commence à la deuxième parenthèse et se termine à la cinquième. La deuxième, la déclaration de répétition imbriqué commence à la troisième parenthèse et finit à la quatrième. Comme vous le voyez, les parenthèses vont par paires et nous indentons le bloc de code entre parenthèses.

Ajouter des commentaires

Comme vous le constatez, si on ne se donne pas un peu de discipline dans l’organisation de nos programmes, ceux-ci peuvent devenir rapidement incompréhensibles. Pour rendre votre programme plus lisible, il est bon d’y ajouter quelques commentaires. Comme mentionné dans cet article, chaque fois que vous mettez // sur une ligne, le reste de cette ligne est ignoré et peut être employé pour des commentaires. Un long commentaire peut être mis entre /* et */. Le programme complet pourrait ressembler à ceci :

Dans cet article, vous avez appris l’utilisation de la déclaration repeat et l’utilisation des commentaires. Aussi, vous avez vu la fonction de parenthèses imbriquées et l’utilisation de l’indentation . Avec tout ce que vous savez jusqu’à maintenant, vous pouvez diriger votre robot le long de toutes sortes d’obstacles. C’est un bon exercice pour s’entraîner et écrire quelques variations des programmes vu dans cet article.