Java Tip: labels

Vous qui codez en java, vous avez surement déjà eu affaire à cette situation, une boucle dont vous voulez sortir sous certaines conditions, autres que celles la définissant.

Et comme tout bon programmeur, vous avez fait usage de l’instruction break, logé dans un petit if.

Maintenant, comment faire si vous êtes dans une boucle dans une boucle dans une boucle dans une boucle et que vous voulez quitter la première?

Eh bien java vous permet de placer un label avant votre boucle. Et lorsque vous faite appel à votre instruction break, spécifiez le label, et vous serez à la sortie de la boucle principale.

Simple et efficace, allez, un exemple pour la route:

outerloop:
for (int i=0; i < 5; i++) {
  for (int j=0; j < 5; j++) {
    if (i * j > 6) {
      System.out.println("Breaking");
      break outerloop;
    }
    System.out.println(i + " " + j);
  }
}
System.out.println("Done");

Ce qui vous affichera:

0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
2 0
2 1
2 2
2 3
Breaking
Done

Robot Tetris

Voilà enfin la présentation de mon projet annuel.
Il s’agit d’un robot Lego qui doit être capable de jouer à Tetris en appuyant sur les touches d’un clavier. L’acquisition des données du jeu doit se faire par une webcam.
Nous sommes cinq à travailler sur ce projet. La partie qui m’est revenue est l’intelligence artificielle et je vous propose de jeter un œil à cette petite vidéo pour juger l’avancement:

Dans cette vidéo, l’IA joue directement en envoyant des ordres internes au jeu et en recevant les infos depuis le jeu.
Les autres parties étant à peu près finies aussi, la prochaine étape est l’intégration. Donc mon prochain billet sur ce projet devrait être une vidéo avec le robot fonctionnant réellement, prenant ses infos depuis une webcam.