Bonjour,
Hélas, je ne m'y connais pas du tout en robotique, mais côté software, pour :
- pour la programmation je ne suis vraiment pas une bête. il me semble qu'il faut utiliser "random", après je pensais à ceci. créer une liste de variable(MOVELEFT, etc...) et que le robot toute les 1s aille piocher dedans puis exécute celle ci.cela serait-il possible?
En effet, c'est possible.
Voici un exemple d'utilisation de la fonction rand() :
1 2 3 4
|
srand(time(0)); // Permet d'initialiser la fonction random, c'est très important
int nb1 = rand(); // Génère un nombre aléatoire compris entre 0 et RAND_MAX(ex: 15689423)
int nb2 = rand() % 10; // Génère un nombre compris entre 0 et 10 |
Après pour ta liste, tu peux définir des macros :
1 2 3 4 5 6
|
# define MOVELEFT 0
# define MOVERIGHT 1
# define MOVEFORWARD 2
# define MOVEBACK 3
# define NBCOMMAND 4 // Nombre de commandes MOVE... |
Puis dans ton code :
1 2 3 4 5 6 7 8 9 10 11 12 13
|
srand(time(0));
int choice = rand() % NBCOMMAND; // Donne aléatoirement 0, 1, 2, 3
switch (choice)
{
case MOVELEFT:
funcMoveLeft();
break;
case MOVERight:
funcMoveRight();
break;
etc...
} |
Pour ce qui est du temps, il te faut, dans la boucle principale de ton programme, calculer le temps une première fois (start_time), puis le recalculer (end_time) jusqu'à ce que : end_time - start_time = 1s. A ce moment : end_time = start_time, puis tu exécutes la fonction décrite plus haut.
Partager