Challenge 1 : sortie du labyrinthe

On a placé deux billes dans le labyrinthe à bascule représenté ci-dessous. Saurez-vous les en faire sortir ?

Pour cela, vous pouvez utiliser les commandes haut(), bas(), gauche() et droite() afin d'incliner le labyrinthe et de faire ainsi rouler les billes. Une bille roule dans la direction choisie jusqu'à ce qu'elle rencontre une cloison ou une autre bille, ou bien qu'elle sorte du labyrinthe par l'ouverture située en bas à droite.

En cliquant sur les boutons ci-contre, vous pouvez visualiser l'exécution de la séquence de commandes suivante :

      haut()
      bas()
      droite()
      haut()
      gauche()
      bas()
      droite()

Votre objectif est d'écrire un programme qui fait sortir les deux billes. Moins vous utilisez de commandes, plus vous aurez de points.

Attention : pour réussir cet exercice, il est important de se baser sur les exemples de programmes fournis ci-dessous.

Voici pour chaque langage, le programme complet effectuant les commandes listées ci-dessus, et dont vous pouvez partir. Notez que votre programme peut aussi afficher du texte.

#include "robot.h"
 
int main()
{
   haut();
   bas();
   droite();
   gauche();
   bas();
   printf("coucou");
   droite();

   return 0;
}

#include "robot.h"
 
int main()
{
   haut();
   bas();
   droite();
   gauche();
   bas();
   printf("coucou");
   droite();

   return 0;
}
open Robot;;
 
haut();
bas();
droite();
gauche();
Printf.printf "coucou";
bas();
droite();
import static algorea.Robot.*;
 
class Main
{
   public static void main(String[] args)
   {
      haut();
      bas();
      droite();
      gauche();
      System.out.println("coucou");
      bas();
      droite();
   }
}
void main()
{
   haut();
   bas();
   droite();
   gauche();
   println("coucou");
   bas();
   droite();
}

from robot import *

haut()
bas()
droite()
gauche()
print("coucou")
bas()
droite()


Source : http://www.france-ioi.org/