Valeur de cette activité : 30 points
Compétence :
Compétence :
La programmation c, java , python et ruby avec Laby (3 pts)

A-Module 12 : ROBOTIQUE - Linux : 30 points - difficulté : 2

La programmation c, java , python et ruby avec Laby

Description

Laby est un jeu de labyrinthe qui permet de s'initier à la programmation.



Les principales commandes sont :


  1. forward(); : avancer
  2. left(); : tourner à gauche
  3. right(); : tourner à droite
  4. escape(); : sortir, terminer
  5. take(); : prendre
  6. drop(); : laisser tomber
  7. while(condition) : répéter tant qu'une condition soit rencontrée
  8. look() ; voir si il y a un objet devant
  9. Web : toile
  10. Wall : mur
  11. Rock : roche
  12. Void ; nul ou rien
  13. void f() { ... } ; déclaration de la fonction f
  14. == : opérateur de comparaison
  15. if(condition) {... }else{...} : structure conditionnelle si ... autrement ....


Explications des principales commandes spécifiques au langage java

  • break; // sortir d'une boucle de répétition
  • int i = 0; // création de la variable i et assignation de la valeur 0 à cette variable
  • i++; // incrémentation de la variable i de 1
  • for (int i = 0; i < 4; i++) //répéter avec la variable i valant 0 jusqu'à ce que la variable i soit plus petite que 4 en utilisant une incrémentation de 1
  • while (i < 4) // répéter tant que la variable i est plus petite que 4
  • switch(k)
          {
            case 0:
             ...
              break;
            case 1:
             ...
              break;
            case 2:
              ...
              break;
            default:
             ...  
          }
    //L'instruction switch équivaut à une série d'instructions if . En de nombreuses occasions, vous aurez besoin de comparer la même variable (ou expression) avec un grand nombre de valeurs différentes, et d'exécuter différentes parties de code suivant la valeur à laquelle elle est égale. C'est exactement à cela que sert l'instruction switch .
  • void square(){...} // création de la méthode nommée square
  • double a = 100; //création de la variable de type double nommée a et assignation de la valeur 100 à cette variable
  • private // visible seulement dans sa propre classe
  • public //visible partout
  • protected //visible dans le même paquet et dans la sous-classe
  • import ch.aplu.turtle.*; // importation de la librairie turtle
  • class Serie1no1 // création de la classe Serie1no1
  • Serie1no1() // Serie1no1() est un constructeur de la classe serie1no1. Le constructeur a TOUJOURS le même nom que le nom de la classe. { }
  • public static void main(String[] args) //Chaque application Java a besoin d'une méthode "main()" qui est toujours définie avec cette structure.
    // La méthode main() est la première à être exécuter dans un programme.
    // Elle indique le début du programme.
  • new Serie1no1();
    // Génération d'un nouvel objet de la classe "Serie1no1".
    // Toutes les propriétés et méthodes définies à partir de son constructeur sont exécutés automatiquement.
  • Les types de variables
    
    int  //entiers entre -231 et 231-1
    
    long 	//entiers entre -263 et 263-1
    
    double //nombre décimaux
    
    boolean  //valeur Vrai (true) ou Faux (false)
    
    char 	//chaîne de caractères (texte) 
    
    

Série 1 : 1A, 1B, 1C ( 5 points )
Série 2 : 2A, 2B, 2C ( 5 points )
Série 3 : 3A, 3B ( 10 points )
Série 4 : 4A, 4B ( 10 points )
Série 5 : Counting the rocks ( 5 points )
Série 6 : This is crazy ( 10 points )
Veuillez présenter tous les travaux d'une même série dans une même page.

Veuillez produire une page par série de défis (une page pour la série 1, une page pour la série 2, etc...) s.v.p.
Votre programmation ne doit pas générer de messages d'erreurs.


  1. Installez le logiciel laby en tapant dans le terminal :
    sudo apt-get install laby && echo "alias laby='laby --lang=l'" >> ~/.bashrc



  2. Lancez Laby en tapant dans le terminal laby --lang=l et réalisez chacun des défis présentés en (1a.laby, 1b.laby, etc) en choisissant un langage de votre choix (c, java, ruby ou python):
    IMPORTANT : vous devez bien lire l'énoncé du défi (voir les traductions ci-dessous au besoin) et obligatoirement utiliser les commandes mentionnées dans l'énoncé

    Voici la traduction de chacun des énoncés :

    Défi 1a.laby : Effectuez la programmation afin de conduire le robot-fourmi vers la sortie.
    Commandes à utiliser : forward(); left(); right(); escape();

    Défi 1b.laby : Une roche est dans le chemin du robot-fourmi, empêchant la fourmi de se rendre vers la sortie. Utilisez les commandes suivantes afin afin de conduire le robot-fourmi vers la sortie.
    Commandes à utiliser : forward(); left(); right(); escape(); take(); drop();

    Défi 1c.laby : Trouvez comment le robot-fourmi peut se rendre à la sortie malgré la roche présente dans le corridor.
    Commandes à utiliser : forward(); forward(); left(); right(); escape(); take(); drop();

    Défi 2a.laby : Utilisez la boucle "while" afin de permettre au robot-fourmi de se rendre vers la sortie
    Commandes additionnelles à utiliser : while (look() == Void) { ... }

    Défi 2b.laby : programmez afin de permettre au robot-fourmi de se rendre vers la sortie malgré la présence de plusieurs roches.
    Commandes additionnelles à utiliser: while (look() == Void) { ... }
    ou
    Commandes à utiliser :
    le langage JAVA et la boucle "for":
    for (int i = 0; i < 4; i++) { ... }


    le langage c et la boucle "for":
    int i; for (i=1; i<6; i++) { ... }


    le langage ruby et la boucle "while":
    i=0
    while i<2
    forward
    i=i+1
    end



    le langage python et la boucle "while" : faites attention à l'indentation des lignes avec le langage python
    i = 0
    while (i < 3):
    forward()
    i=i+1




    Défi 2c.laby : 5 longs corridors attendent le robot-fourmi. Utilisez une "fonction" qui permettra au robot-fourmi de se rendre jusqu'au bout du corridor. Utilisez ensuite cette fonction pour faire parcourir chacun des corridors à notre robot-fourmi.
    Commandes à utiliser : void f() { ... }

    Défi 3a.laby : La petite toile ne capturera pas le robot-fourmi. La grande toile capturera le robot-fourmi. Notez que la petite et la grande toile ne se placeront pas toujours du même côté. Utilisez la structure conditionnelle "if" afin que le robot-fourmi puisse se rendre à la sortie.
    Commandes à utiliser : if (look() == Web) { ... } else { ... }

    Défi 3b.laby : Ça se complique un peu. La petite toile ne capturera pas le robot-fourmi. La grande toile capturera le robot-fourmi. Notez que la petite et la grande toile ne se placeront pas toujours du même côté, les roches également. Utilisez la structure conditionnelle "if" afin que le robot-fourmi puisse se rendre à la sortie.
    Commandes à utiliser : if (look() == Web) { ... } else { ... }

    Défi 4a.laby : La spirale de l'enfer. UTILISATION OBLIGATOIRE D'UNE BOUCLE DE RÉPÉTITION FOR :
    Commandes à utiliser : Boucle for

    Défi 4b.laby : . Notez que les toiles ne se placeront pas toujours aux mêmes endroits.
    Commandes à utiliser : Toutes les commandes vues précédemment
    - boucle de répétitions, structure conditionnelle, et plus d'une fonction


    Défi Counting_The_rocks.laby : Utilisation OBLIGATOIRE d'une boucle for ou while
    Commandes à utiliser : Toutes les commandes vues précédemment (boucle while et boucle for )

    Défi This Is Crazy.laby : Notez que les toiles ne se placeront pas toujours aux mêmes endroits.
    Commandes à utiliser : Toutes les commandes vues précédemment




  3. Réalisez le défi proposé

  4. Effectuez une capture-écran-image DE LA FENÊTRE ENTIÈRE de laby pour chacun des défis
  5. Ajoutez une page à votre portfolio en affichant l'assistant HTML ainsi que la directive 89769

  6. Inscrivez dans le champ titre : La programmation c, java , python et ruby avec Laby1a.laby

  7. Sélectionnez la section : MODULE ROBOTIQUE_LINUX

  8. Sélectionnez la matière : informatique

  9. Inscrivez dans le champ no de la directive : 89769

  10. Inscrivez dans votre page le titre de niveau 1 : La programmation c, java , python et ruby avec Laby

  11. Indiquez la série réalisée (exemple Série no 1)

  12. Ajoutez votre capture-écran-image EN UTILISANT LE BOUTON IMAGE REDIMENSIONNÉE

  13. Copiez le code de chacun de vos programmes

  14. Collez chacun des programmes entre les balises <pre> </pre> (c, java, ruby, python) en identifiant bien son numéro (exemple LABY 1A)

  15. Identifiez le langage utilisé (c, java, ruby ou python).

  16. Visualisez votre page et apportez des modifications au besoin.