Timer

ça c'est à toi de voir si dans ta fonction il avance une seconde après il vois ce qui ce passe et continue a nouveau d'avance tu peut le mettre dans ta fonction mais bon pendant ces une seconde tout peut ce passé sans qu'il le vois :s

et c'est histoire de machine d'état c'est une façon simple de procéder, comme tu dit sa donnerai sa:

switche (x):
{
  case 1: avancer
 break;

  case 2: reculer
  break;

  case 3: tourner
  break;
}

et avec ça soit a chaque fin de case tu passe au suivant soit tu choisie l'action avant:

switche (x):
{
  case 1: avancer
 x=2;
 break;

  case 2: reculer
  x=3;
  break;

  case 3: tourner
  x=1;
  break;
}
if(je veux tourner){x=3;}
if(je veux avancer){x=1;}
if(je veux reculer){x=2;}


switche (x):
{
  case 1: avancer
 break;

  case 2: reculer
  break;

  case 3: tourner
  break;
}

par exemple...

Skizo !